2016-01-14 5 views
0

У меня есть сторонний проект java maven, который заполнен ошибками и больше не может быть построен.Как создать толстую банку с компиляцией кода

Но, к счастью, я мог бы получить уже созданную банку (того же кода Java), которая отлично работает при работе с набором банок зависимости.

Теперь мне нужно построить толстую банку со всеми зависимостями.

Я рассказал много учебников, которые объясняют, как построить жировую банку, составив основной проект. есть ли способ, которым я могу построить толстую банку, не компилируя код.

+0

Вы можете развязать все файлы и создать новую банку на командной строке – Jens

+0

Вы можете попробовать использовать [maven-assembly-plugin] (http://maven.apache.org/plugins/maven-assembly-plugin/), возможно, в сочетании с [maven-dependency-plugin] (https://maven.apache.org/плагинов/Maven-зависимость-плагин /). – jah

ответ

0

Вам не нужен исходный код, чтобы получить банку, с minimal pom вы уже получаете пустую банку. Добавьте зависимости к pom.xml и используйте maven-shade-plugin, чтобы получить свою жирную банку. Если ваш проект имеет классы, но не источники, и вам не нужно их перекомпилировать (вы действительно уверены ?!), вы всегда можете добавить их в src/main/resources.

+0

Привет Спасибо за ваш ответ. на самом деле большинство зависимых банок не имеют публичных репозиториев. поэтому я поставил зависимые баночки в src/lib и отредактировал pom.xml в соответствии с [link] (http://www.tutorialspoint.com/maven/maven_external_dependencies.htm). Затем извлекли файлы классов проекта из главной банки и поместили папки классов в src/main/resources. при компиляции я получаю _ "aws-java-sdk: aws-java-sdk: jar не должен указывать на файлы в каталоге проекта, $ {basedir} /src/lib/aws-java-sdk-1.0.12.jar будет неразрешимым из-за зависимого проекта »_ – user2163536

+0

Я даже попробовал использовать плагин для тени по ссылке [https://maven.apache.org/plugins/maven-shade-plugin/usage.html], пожалуйста, исправьте меня, если мои шаги ошибочны или не имеет смысла – user2163536

0

Вы можете попробовать следующее:

  1. установить существующий JAR в локальном репо с использованием Maven install:file-install (см https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
  2. Добавить вновь установленный JAR как зависимость к вашему проекту
  3. Создайте свой жир JAR (Предполагаю, вы уже знаете, как это сделать)
Смежные вопросы