2013-10-11 53 views
0

我想使用Maven生成zip格式的工件。給你一些背景;我的項目包含一個APS軟件包(應用程序打包標準,用於在Parallels平臺上配置雲應用程序)。該軟件包是一個zip文件,它包含XML和PHP文件的組合。它由Eclipse內部的APS插件生成,其名稱始終包含其內容的版本號和發行版號。有沒有辦法動態設置Maven版本號?

我想要做的是使用Maven生成一個zip文件,這將是一種最終將發送給客戶的候選版本,並且不僅包括實際的APS包,還包括其他文件,如自述文件,用戶Guide.pdf等;我希望這個zip文件的名稱包含APS軟件包版本號的版本號。目前我可以通過使用像「mvn -Dversion = 1.2.3-4包」手動生成這個,但我想自動化過程,理想情況下從詹金斯運行。

基本上,我的策略是運行一個腳本,從最初的APS軟件包中提取版本號,一旦完成,我的腳本可以調用Maven並將該參數傳遞給它,以便它可以生成最終的zip正確的版本號。這很好,但是,我需要手動運行此腳本,並且正在尋找一個自動過程。

我的問題是;是否可以從Maven內部調用此腳本,並將其返回值用作參數來設置運行時的版本名稱(或將生成的文件的名稱)?正如我所提到的,我最終希望Jenkins來處理這個問題。它可以獲取pom文件,但我不確定它是如何能夠自動配置「自動配置」以擁有正確的版本號。

非常感謝。

+0

你可以使用http://maven.apache.org/plugins/maven-antrun-plugin/,它可以讓你在兩個動作之間做更復雜的任務。 – JScoobyCed

回答

1

從詹金斯打造您可以使用配置文件與${BUILD_NUMBER}

<profile> 
     <id>jenkins</id> 
     <build> 
      <finalName>${artifactId}-${version}-${BUILD_NUMBER}</finalName> 
      </build> 
</profile> 

然後在詹金斯運行:

clean install -Pjenkins

0

我使用SVN(或任何源版本系統)版本識別軟件構建。

通過簡單地執行這個

REVISION=`svn info | grep '^Revision:' | sed -e 's/^Revision: //'` 
在sourcers

文件夾,你在$修訂正確的價值,那麼你可以使用它爲你的Maven構建

mvn -Dversion=1.2.3-$REVISION package 

簡單,清洗容易

+0

如何使用變量Jenkins suppiles? $ SVN_REVISION –

相關問題