如何将 maven 项目版本放在 war 文件清单中?

2022-09-01 11:31:05

我需要让 Maven 将 POM 文件中的版本号插入到位于 WAR 文件中 /WEB-INF/manifest.mf 下的清单中。

我该怎么做?我能够使用maven-jar-plugin轻松地在JAR文件中执行此操作的文档,但这不适用于WAR文件。

感谢您的帮助!


答案 1

使用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>

答案 2

或者,您可以使用 addDefaultFillmentationEntriesaddDefaultSpecificationEntries 标志,这将添加包括属性在内的多个条目。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>

推荐