在 Maven 中使用自定义清单构建 JAR
Build JAR with custom manifest in maven
我正在尝试让 Maven 创建带有自定义 MANIFEST.MF 的工件 jar。
使用以下代码片段听起来很容易:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.directory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
问题是,maven-jar-plugin 仍然 "messes" 带有我手动创建的清单。文档说明
The content of your own manifest file will be merged with the entries
created by Maven Archiver
不幸的是,清单版本并非如此。它将始终设置为“1.0”。 (我知道理论上这是正确的,但由于我无法影响的原因,我需要一个不同的值)。
关于如何阻止 jar 插件完全接触我的清单或至少保留清单版本的任何想法?
我终于设法使用 maven-antrun-plugin 解决了我的问题:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<jar file="${project.build.directory}/${project.build.finalName}.jar" update="true" manifest="${project.build.directory}/META-INF/MANIFEST.MF" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
我正在尝试让 Maven 创建带有自定义 MANIFEST.MF 的工件 jar。
使用以下代码片段听起来很容易:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.directory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
问题是,maven-jar-plugin 仍然 "messes" 带有我手动创建的清单。文档说明
The content of your own manifest file will be merged with the entries created by Maven Archiver
不幸的是,清单版本并非如此。它将始终设置为“1.0”。 (我知道理论上这是正确的,但由于我无法影响的原因,我需要一个不同的值)。 关于如何阻止 jar 插件完全接触我的清单或至少保留清单版本的任何想法?
我终于设法使用 maven-antrun-plugin 解决了我的问题:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<jar file="${project.build.directory}/${project.build.finalName}.jar" update="true" manifest="${project.build.directory}/META-INF/MANIFEST.MF" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>