当使用maven构建jar文件时,它会在META-INF/MANIFEST.MF中创建一个清单文件。目前其内容为:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: <my username>
Created-By: Apache Maven 3.1.0
Build-Jdk: 1.8.0_5
如何隐藏清单条目?特别是,我想隐藏“Built-By:”条目,因为我看不出有任何理由说明为什么 jar 应该包含我的用户名。
The maven-achiver 插件文档 https://maven.apache.org/shared/maven-archiver/examples/manifest.html似乎很清楚,您无法删除属性,只能将它们设置为空白,如中所述亚历克斯·切尔尼雪夫的回答 https://stackoverflow.com/a/25098501/274350。为了更好地控制 MANIFEST.MF,您不应该使用 maven-archiver 插件。
一种替代方法是使用maven antrun 插件 https://maven.apache.org/plugins/maven-antrun-plugin/和蚂蚁罐子任务 https://ant.apache.org/manual/Tasks/jar.html构建罐子。
在 pom.xml 中:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<jar destfile="test.jar" basedir=".">
<include name="build"/>
<manifest>
<attribute name="Manifest-Version:" value="1.0"/>
</manifest>
</jar>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
另一种选择是直接使用Maven 执行插件 http://www.mojohaus.org/exec-maven-plugin/.
我不喜欢推荐 antrun,因为我认为这是一个肮脏的黑客,但似乎 maven-archiver 不满足您的要求。可能值得对 maven-archiver 提出功能请求。
编辑:2014-10-06 提出 JiraMSHARED-362 https://issues.apache.org/jira/browse/MSHARED-362
编辑:2018-06-18:更新了 Jira 和 Maven Exec 插件的链接
编辑:2019-01-14:针对 maven-archiver-3.4.0 进行修复
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)