如何将 maven 项目版本放在 war 文件清单中?
2022-09-01 11:31:05
我需要让 Maven 将 POM 文件中的版本号插入到位于 WAR 文件中 /WEB-INF/manifest.mf 下的清单中。
我该怎么做?我能够使用maven-jar-plugin轻松地在JAR文件中执行此操作的文档,但这不适用于WAR文件。
感谢您的帮助!
我需要让 Maven 将 POM 文件中的版本号插入到位于 WAR 文件中 /WEB-INF/manifest.mf 下的清单中。
我该怎么做?我能够使用maven-jar-plugin轻松地在JAR文件中执行此操作的文档,但这不适用于WAR文件。
感谢您的帮助!
使用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>
或者,您可以使用 addDefaultFillmentationEntries 或 addDefaultSpecificationEntries 标志,这将添加包括属性在内的多个条目。project.version
addDefault Implementationentries
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>