Домой java Создайте толстый файл Jar — Maven Shade Plugin

Создайте толстый файл Jar — Maven Shade Plugin

605
0

В этом уроке мы покажем вам, как использовать Maven Shade Plugin для создания Jar вместе с Jar-файлами зависимостей в одном исполняемом файле Jar, так называемом fat Jar или uber Jar.

Заметка
Плагин Maven Shade — лучший плагин для создания JAR-файла / фидера uber, если сравнивать с плагином сборки , поскольку он предоставляет функцию перемещения классов , чтобы избежать конфликта имен классов в пути к классам.

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 


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-shade-plugin
2.3



package

shade





com.csharpcoderr.core.utils.App











3. Упакуйте это

Чтобы получить окончательный 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-shade-plugin:2.3:shade (default) @ dateUtils ---
[INFO] Including joda-time:joda-time:jar:2.5 in the shaded jar.
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /Users/mkyong/dateUtils/target/dateutils.jar with /Users/mkyong/dateUtils/target/dateUtils-1.0-SNAPSHOT-shaded.jar
[INFO] Dependency-reduced POM written at: /Users/mkyong/dateUtils/dependency-reduced-pom.xml
[INFO] Dependency-reduced POM written at: /Users/mkyong/dateUtils/dependency-reduced-pom.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.594s
[INFO] Finished at: Tue Oct 21 15:24:28 MYT 2014
[INFO] Final Memory: 17M/42M
[INFO] ------------------------------------------------------------------------

Два файла JAR будут созданы в target папка.

  1. dateutils.jar — Проект и классы зависимостей в одном jar, это то, что вы хотите.
  2. original-dateutils.jar — только ваши классы проекта

PS Сгенерированный dependency-reduced-pom.xml только для справки, просто проигнорируйте это.

4. Просмотрите

Перечислите содержание dateutils.jar


$ jar tf target/dateutils.jar

META-INF/MANIFEST.MF
META-INF/
com/
com/mkyong/
com/mkyong/core/
com/mkyong/core/utils/
com/mkyong/core/utils/App.class
META-INF/maven/
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
META-INF/LICENSE.txt
META-INF/NOTICE.txt
org/
org/joda/
org/joda/time/
org/joda/time/base/
org/joda/time/base/AbstractDateTime.class
org/joda/time/base/AbstractDuration.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/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

MANIFEST.MF


Manifest-Version: 1.0
Build-Jdk: 1.7.0_05
Built-By: mkyong
Created-By: Apache Maven 3.1.1
Main-Class: com.csharpcoderr.core.utils.App
Archiver-Version: Plexus Archiver

Запустить его


$ java -jar target/dateutils.jar

2014-10-21

Скачать исходный код

Загрузить его — dateUtils-maven-shade-plugin.zip (10 КБ)

Рекомендации

  1. Плагин Apache Maven Shade
  2. Сборочный плагин Apache Maven
  3. Создание файла Fat Jar — пример Maven One-JAR
  4. Создать толстый файл Jar — Maven Assembly Plugin
  5. Как создать файл JAR с Maven

толстяк мавен

Создайте толстый файл Jar — Maven Shade Plugin

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Пример JavaFX Animated Ball

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь