Содержание
Этот урок покажет вам, как использовать maven-jar-plugin создать файл манифеста и упаковать / добавить его в окончательный файл jar. Файл манифеста обычно используется для определения следующих задач:
- Определите точку входа Приложения, сделайте Jar исполняемым.
- Добавить путь к классу зависимости проекта.
Когда вы запускаете команду mvn package упаковать проект в банку, следующее meta-inf/manifest.mf файл будет создан и добавлен в окончательный файл Jar автоматически.
мета-инф / manifest.mf
Manifest-Version: 1.0
Built-By: ${user.name}
Build-Jdk: ${java.version}
Created-By: Apache Maven
Archiver-Version: Plexus Archiver
1. Сделайте Jar исполняемым
определять maven-jar-plugin в pom.xml и настройте файл манифеста с помощью тега конфигурации.
pom.xml
org.apache.maven.plugins
maven-jar-plugin
2.4
com.csharpcoderr.core.App
Будет создан следующий файл манифеста. Если вы запустите этот Jar, он выполнит com.csharpcoderr.core.App ,
мета-инф / manifest.mf
anifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.6.0_35
Created-By: Apache Maven
Main-Class: com.csharpcoderr.core.App
Archiver-Version: Plexus Archiver
2. Добавить проект classpath зависимости.
Большинству проектов Java нужна зависимость, и ее можно легко определить в файле манифеста. Обычно вы будете использовать maven-dependency-plugin скопировать зависимости проекта в другое место.
pom.xml
org.apache.maven.plugins
maven-jar-plugin
2.4
true
com.csharpcoderr.core.App
dependency-jars/
org.apache.maven.plugins
maven-dependency-plugin
2.5.1
copy-dependencies
package
copy-dependencies
${project.build.directory}/dependency-jars/
Будет создан следующий файл манифеста. Зависимости проекта будут скопированы в {project}/target/dependency-jars/ ,
мета-инф / manifest.mf
manifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.6.0_35
Class-Path: dependency-jars/log4j-1.2.17.jar
Created-By: Apache Maven
Main-Class: com.csharpcoderr.core.App
Archiver-Version: Plexus Archiver
Скачать исходный код
Загрузите его — Generate-Manifest-Using-Maven.zip (7 КБ).
Рекомендации
0.00 (0%) 0 votes




