Maven自定義Manifest (META-INF/MANIFEST.MF)
阿新 • • 發佈:2022-03-10
1、打包時新增一些常用資訊到META-INF/MANIFEST.MF(新增Class-Path資訊,設定主類MainClass)
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.build.timestamp.format>yyyy-MM-dd_HH_mm</maven.build.timestamp.format> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <index>true</index> <manifest> <addClasspath>true</addClasspath> <mainClass>fully.qualified.MainClass</mainClass> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> <manifestEntries> <url>${project.url}</url> <build-time>${maven.build.timestamp}</build-time> </manifestEntries> </archive> </configuration> </plugin> </plugins> </build>
結果:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: jervalj Build-Jdk: 1.6.0_34 Specification-Title: maven-test Specification-Version: 1.0-SNAPSHOT Implementation-Title: maven-test Implementation-Version: 1.0-SNAPSHOT Implementation-Vendor-Id: sdf build-time: 2014-01-03_17_12 url: http://maven.apache.org Class-Path: persistence-rds-1.9-SNAPSHOT.jar persistence-common-1.5.5- SNAPSHOT.jar commons-lang-2.1.jar
2、修改Class-Path資訊(修改Class-Path字首,自定義Class-Path格式)
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <index>true</index> <manifest> <addClasspath>true</addClasspath> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> <classpathPrefix>lib/</classpathPrefix> <classpathLayoutType>custom</classpathLayoutType> <customClasspathLayout>WEB-INF/lib/$${artifact.groupIdPath}/$${artifact.artifactId}-$${artifact.version}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout> </manifest> <manifestEntries> <url>${project.url}</url> <build-time>${maven.build.timestamp}</build-time> </manifestEntries> </archive> </configuration> </plugin>
結果:
Manifest-Version: 1.0 build-time: 2014-01-03_17_36 Implementation-Title: maven-test Implementation-Version: 1.0-SNAPSHOT Class-Path: lib/WEB-INF/lib/com/xxx/persistence/persistence-rds-1.9 -SNAPSHOT.jar lib/WEB-INF/lib/com/xxx/persistence/persistence-comm on-1.5.5-20130402.064609-5.jar lib/WEB-INF/lib/com/xxx/arch/tools/ xxx-arch-aop-1.1.jar lib/WEB-INF/lib/aspectwerkz/aspectwerkz-2.0.j ar lib/WEB-INF/lib/com/jcraft/jsch-0.1.27.jar lib/WEB-INF/lib/org/jbo ss/jboss-eap/server/production/lib/servlet-api-JB_4.3.0.GA_CP06.jar l ib/WEB-INF/lib/com/xxx/tools/xxx-report-bin-1.21.jar lib/WEB-IN F/lib/commons-lang/commons-lang-2.1.jar Built-By: jervalj Created-By: Apache Maven url: http://maven.apache.org Implementation-Vendor-Id: sdf Build-Jdk: 1.6.0_34 Specification-Title: maven-test Specification-Version: 1.0-SNAPSHOT Archiver-Version: Plexus Archiver
3、去掉Class-Path版本資訊
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <index>true</index> <manifest> <addClasspath>true</addClasspath> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> <classpathLayoutType>custom</classpathLayoutType> <customClasspathLayout>$${artifact.artifactId}.$${artifact.extension}</customClasspathLayout> </manifest> <manifestEntries> <url>${project.url}</url> <build-time>${maven.build.timestamp}</build-time> </manifestEntries> </archive> </configuration> </plugin>
結果:
Manifest-Version: 1.0 build-time: 2014-01-03_17_44 Implementation-Title: maven-test Implementation-Version: 1.0-SNAPSHOT Class-Path: persistence-rds.jar persistence-common.jar xxx-arch-aop .jar aspectwerkz.jar jsch.jar servlet-api.jar xxx-report-bin.jar c ommons-lang.jar Built-By: jervalj Created-By: Apache Maven url: http://maven.apache.org Implementation-Vendor-Id: sdf Build-Jdk: 1.6.0_34 Specification-Title: maven-test Specification-Version: 1.0-SNAPSHOT Archiver-Version: Plexus Archiver
4、使用已存在的META-INF/MANIFEST.MF檔案
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> </plugin>
via:https://blog.csdn.net/jerval/article/details/84517270