В этом уроке мы покажем вам, как создать банку fat/uber с помощью плагина сборки Maven. Это означает, что создайте банку вместе с ее банками зависимостей в один исполняемый файл Jar.
- Плагин Maven shade/| решите эту проблему, используя такую технику, как перемещение класса . Плагин Maven one-jar
- , добавьте файл jar зависимостей непосредственно в jar проекта и загрузите его с помощью пользовательского загрузчика классов.
1. Просмотрите проект Java
Предыдущий проект Java ( dateutils ) будет использован повторно, см. Следующую структуру папок
2. Предыдущий проект Java (||dateutils||) будет использован повторно, см. Следующую структуру папок
Прочитайте комментарий ниже для пояснения.
4.0.0 com.mkyong.core.utils dateUtils jar 1.0-SNAPSHOT dateUtils http://maven.apache.org 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.mkyong.core.utils.App make-assembly package single
3. Пакет Оно
Выше “Плагин сборки Maven” привязан к фазе упаковки Maven, чтобы создать окончательную банку, просто упакуйте ее:
$ 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] ------------------------------------------------------------------------
В папке target
будут созданы два файла jar.
- 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.mkyong.core.utils/ META-INF/maven/com.mkyong.core.utils/dateUtils/ META-INF/maven/com.mkyong.core.utils/dateUtils/pom.xml META-INF/maven/com.mkyong.core.utils/dateUtils/pom.properties
Manifest-Version: 1.0 Built-By: mkyong Build-Jdk: 1.7.0_05 Created-By: Apache Maven 3.1.1 Main-Class: com.mkyong.core.utils.App Archiver-Version: Plexus Archiver
Запустите его
$ java -jar target/dateutils-jar-with-dependencies.jar 2014-10-21
Скачать Исходный Код
Рекомендации
- Плагин сборки Apache Maven
- Создайте Файл Fat Jar – Пример Maven С одной БАНКОЙ
- Плагин тени Maven
- Как создать файл jar с помощью Maven
Оригинал: “https://mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/”