我需要让Maven将POM文件中的版本号插入位于/WEB-INF/manifest.mf下WAR文件中的清单。
我该怎么做?我能够使用maven-jar-plugin轻松地在JAR文件中提交文档,但这不适用于WAR文件。
感谢您的帮助!
答案 0 :(得分:35)
使用maven-war-plugin计算出来。请参阅以下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<archive>
<manifestEntries>
<version>${project.version}</version>
</manifestEntries>
</archive>
</configuration>
</plugin>
答案 1 :(得分:19)
或者您可以使用 addDefaultImplementationEntries 或 addDefaultSpecificationEntries 标记,这些标记将添加多个条目,包括project.version
属性。
<强> addDefaultImplementationEntries 强>
Implementation-Title: ${project.name}
Implementation-Version: ${project.version}
Implementation-Vendor-Id: ${project.groupId}
Implementation-Vendor: ${project.organization.name}
Implementation-URL: ${project.url}
<强> addDefaultSpecificationEntries 强>
Specification-Title: ${project.name}
Specification-Version: ${project.version}
Specification-Vendor: ${project.organization.name}
两者的默认值均为false。如果未定义属性(例如project.organization.name
),则该行将从清单中排除。
这可以进入 maven-war-plugin 配置,如下所示:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
答案 2 :(得分:-2)
将${project.version}
放入您希望版本所在的manifest.mf中。为了实现这一点,我相信您需要资源插件,以便manven将“过滤”资源,因为它们包含在您的war文件中。