我需要讓Maven將POM文件的版本號插入位於/WEB-INF/manifest.mf下的WAR文件中的清單。如何將maven項目版本放在war文件清單中?
我該怎麼做?我能夠使用maven-jar-plugin輕鬆地在JAR文件中爲此進行文件歸檔,但這不適用於WAR文件。
感謝您的幫助!
我需要讓Maven將POM文件的版本號插入位於/WEB-INF/manifest.mf下的WAR文件中的清單。如何將maven項目版本放在war文件清單中?
我該怎麼做?我能夠使用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>
將${project.version}
放在您的manifest.mf中您希望版本的位置。爲了達到這個目的,我相信你需要資源插件,以便manven能夠「過濾」包含在war文件中的資源。
但清單文件不是資源。它在構建時生成,對嗎?如果在構建時生成,則不會將其作爲資源進行處理。我誤解了什麼? – 2011-04-25 17:54:46
@Matthew它可以是一個資源,但它是一個不正確的方法。你是對的,這個文件是由maven-war-plugin實時生成的。你的回答是正確的。 – yegor256 2011-04-26 17:11:23
或者你可以使用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}
默認值都爲假。如果某個屬性未定義(例如project.organization.name
),那麼該行將被從清單中排除。
這可能進入Maven的戰爭插件配置如下:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
如果您也有興趣通過網址閱讀這些版本信息,例如'http:// example.com/versioninfo.txt',您可以過濾'versioninfo.txt'模板,其中包含您的'$ {project .version}和[將版本文件包含在war中](http://www.taringamberini.com/en/howto/java/2015/including-release-info-into-war/)通過使用'maven -war-plugin'。 – taringamberini 2015-09-25 07:37:17