2011-04-25 121 views

回答

29

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

如果您也有興趣通過網址閱讀這些版本信息,例如'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

-1

${project.version}放在您的manifest.mf中您希望版本的位置。爲了達到這個目的,我相信你需要資源插件,以便manven能夠「過濾」包含在war文件中的資源。

+0

但清單文件不是資源。它在構建時生成,對嗎?如果在構建時生成,則不會將其作爲資源進行處理。我誤解了什麼? – 2011-04-25 17:54:46

+0

@Matthew它可以是一個資源,但它是一個不正確的方法。你是對的,這個文件是由maven-war-plugin實時生成的。你的回答是正確的。 – yegor256 2011-04-26 17:11:23

17

或者你可以使用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} 

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> 
相關問題