Содержание

В этом уроке мы покажем вам, как создать JAR-файл с помощью плагина Maven Assembly . Что означает создание Jar вместе с зависимыми Jars в один исполняемый файл Jar.
Заметка
Плагин сборки Maven не подходит для создания jar fat / uber, он может вызвать проблему с конфликтом имен, лучше использовать другие плагины Maven, такие как:
- Плагин Maven Shade решает эту проблему с помощью техники, такой как перемещение классов.
- Плагин Maven one-jar , добавьте файл jar зависимостей непосредственно в проект jar и загрузите его с помощью пользовательского загрузчика классов.
1. Просмотрите проект Java
Предыдущий Java-проект ( dateutils ) будет использован повторно, см. Следующую структуру папок
Заметка
Этот проект имеет одну зависимость — joda-time.jar
2. Pom.xml
Читайте комментарий ниже для самоочевидности.
pom.xml
4.0.0
com.csharpcoderr.core.utils
dateUtils
jar
1.0-SNAPSHOT
dateUtils
http://maven.apache.org url>
1.7
2.5
4.11
junit
junit
${junit.version}
test
joda-time
joda-time
${jodatime.version}
dateutils
org.apache.maven.plugins
maven-eclipse-plugin
2.9
true
false
org.apache.maven.plugins
maven-compiler-plugin
2.3.2
${jdk.version}
${jdk.version}
org.apache.maven.plugins
maven-assembly-plugin
2.4.1
jar-with-dependencies
com.csharpcoderr.core.utils.App
make-assembly
package
single
3. Упакуйте это
Выше «Maven Assembly Plugin» привязан к этапу упаковки Maven, чтобы произвести окончательный Jar, просто упакуйте его:
$ mvn package
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ dateUtils ---
[INFO] Building jar: /Users/mkyong/dateUtils/target/dateutils.jar
[INFO]
[INFO] --- maven-assembly-plugin:2.4.1:single (make-assembly) @ dateUtils ---
[INFO] Building jar: /Users/mkyong/dateUtils/target/dateutils-jar-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.325s
[INFO] Finished at: Tue Oct 21 13:44:41 MYT 2014
[INFO] Final Memory: 17M/42M
[INFO] ------------------------------------------------------------------------
Два файла JAR будут созданы в target папка.
- dateutils.jar — только ваши классы проекта
- dateutils-jar-with-dependencies.jar — Проект и классы зависимостей в одном банке.
4. Просмотрите
Перечислите содержание dateutils-jar-with-dependencies.jar
$ jar tf target/dateutils-jar-with-dependencies.jar
META-INF/
META-INF/MANIFEST.MF
org/
org/joda/
org/joda/time/
org/joda/time/base/
org/joda/time/chrono/
org/joda/time/tz/ZoneInfoCompiler$DateTimeOfYear.class
org/joda/time/tz/ZoneInfoCompiler$Rule.class
org/joda/time/tz/ZoneInfoCompiler$RuleSet.class
org/joda/time/tz/ZoneInfoCompiler$Zone.class
org/joda/time/tz/ZoneInfoCompiler.class
org/joda/time/tz/ZoneInfoProvider.class
org/joda/time/UTCDateTimeZone.class
org/joda/time/Weeks.class
org/joda/time/YearMonth$Property.class
org/joda/time/YearMonth.class
org/joda/time/YearMonthDay$Property.class
org/joda/time/YearMonthDay.class
org/joda/time/Years.class
META-INF/maven/
META-INF/maven/joda-time/
META-INF/maven/joda-time/joda-time/
META-INF/maven/joda-time/joda-time/pom.xml
META-INF/maven/joda-time/joda-time/pom.properties
com/
com/mkyong/
com/mkyong/core/
com/mkyong/core/utils/
com/mkyong/core/utils/App.class
META-INF/maven/com.csharpcoderr.core.utils/
META-INF/maven/com.csharpcoderr.core.utils/dateUtils/
META-INF/maven/com.csharpcoderr.core.utils/dateUtils/pom.xml
META-INF/maven/com.csharpcoderr.core.utils/dateUtils/pom.properties
MANIFEST.MF
Manifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.7.0_05
Created-By: Apache Maven 3.1.1
Main-Class: com.csharpcoderr.core.utils.App
Archiver-Version: Plexus Archiver
Запустить его
$ java -jar target/dateutils-jar-with-dependencies.jar
2014-10-21
Скачать исходный код
Загрузить его — dateUtils-maven-assembly-plugin.zip (7 КБ)
Рекомендации
- Сборочный плагин Apache Maven
- Создание файла Fat Jar — пример Maven One-JAR
- Плагин Maven Shade
- Как создать файл JAR с Maven
0.00 (0%) 0 votes




