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

Mat*_*ina 24 java maven-2 maven-plugin maven

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

我该怎么做呢?我能够很容易地在使用Maven的JAR-插件的JAR文件这样的文件资料,但并不在一个WAR文件工作.

谢谢您的帮助!

Mat*_*ina 36

使用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>
Run Code Online (Sandbox Code Playgroud)


Bri*_*anV 19

或者您可以使用addDefaultImplementationEntriesaddDefaultSpecificationEntries标志,这些标志将添加多个条目,包括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}
Run Code Online (Sandbox Code Playgroud)

addDefaultSpecificationEntries

Specification-Title: ${project.name}
Specification-Version: ${project.version}
Specification-Vendor: ${project.organization.name}
Run Code Online (Sandbox Code Playgroud)

两者的默认值均为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>
Run Code Online (Sandbox Code Playgroud)