2014-02-10 38 views
1

我正在開發一個任務,爲我的應用程序動態構建一個'About'(靜態HTML)頁面,並且希望使用TeamCity的項目內部版本號來設置它。我們希望爲每個部署生成和部署不同的版本。這導致我想要將值存儲到我的構建中使用的變量。使用Maven動態設置POM中定義的變量

所以我的挑戰,因爲我看到的是:

如何動態地在一個Maven分配一個值的變量建立 階段,然後有一個可用於構建 的其他部分(如發電一份文件)。


的我試圖做的是如下(強調了當前的變量問題)背景:從Team市

  1. 獲得價值通過REST調用生成服務器
  2. 分配值給Maven變量
  3. 文件生成過程中使用變量
  4. 利潤

但是,似乎大多數鏈接指的是從屬性文件獲取值,而不是在構建執行期間動態設置它們。


最後 - 我想我會做一點這與螞蟻運行插件

回答

1

如果在處理資源使用${buildNumber},Maven將自動拿起從球隊的城市版本號和替換具有適當值的變量(不使用REST或任何其他複雜的技術)。顯然,這不會發生在本地構建,但我的團隊沒有這個問題。使用構建配置文件修復此問題很容易,該構建配置文件在構建版本位於本地環境而不是團隊城市時爲變量分配一些值。

我們還使用%build.vcs.number%作爲內部版本號格式來強制團隊城市使用svn版本號,而不是其自己的任意版本號。

+0

這超出了這個問題的範圍......我最好嘗試自己google一下,看看......但是想知道是否仍然使用Filter函數來應用該值(在本例中爲$ {buildNumber})到一些'東西'如文件... – Crowie

+1

是的,這就是我的意思是一個經過處理的資源。 –