2010-02-02 101 views
8

我通過TeamCity/Git構建Maven項目,並試圖在構建成功後發佈到我的存儲庫的pom.xml中插入TeamCity內部版本號。不幸的是,我無法確定如何發佈插入替換的pom.xml。通過Maven發佈POM並插入構建版本信息

我的pom.xml包含像信息:

<version>${build.number}</version> 

其中build.number由TeamCity的提供。所有構建好吧,如果(比如說)build.number = 0.1,那麼部署是pom.xml到0.1的目錄。一切都很好。

但是,部署的pom.xml是pom.xml而沒有所作的替換。即Maven是用適當的替換一個pom.xml運行,但部署的最初版本,所以我在最後pom.xml得到

<version>${build.number}</version> 

。我如何獲得pom.xml的內部版本號?

+0

爲什麼downvote的問題? –

回答

3

我不會使用這種方法,因爲如果沒有提供build.number屬性,它使得從SCM檢出的項目不可能被檢出。我不認爲這是一件好事。也許我錯過了一些東西。

實際上,我沒有得到你想要達到的目標(爲什麼不寫清單中的內部版本號)。但是,根據Teamcity網站上的Maven Features

默認情況下,它還使TeamCity內部版本號與Maven版本號(...)保持同步。

這難道不是有幫助嗎?有關於這個here的另一個線程。

+0

我可以通過提供默認配置文件來構建一個項目,其build.number爲'NONE'(或類似),而我的TeamCity構建使用另一個使用TeamCity屬性的配置文件。這是否解決您的首要關注。 我的核心構建是單獨部署一個pom.xml。我想改變它,然後讓TeamCity構建/部署到一個新的內部版本號,並在部署的pom.xml中更改版本*。那有意義嗎 ?不過,我會檢查一下這個鏈接。 –

+0

@Brian雖然我喜歡SNAPSHOT機制(但那是另一個故事),但個人檔案技巧將適用於第一點。關於第二點,我不確定要得到一切。我通常使用發佈插件來更改版本,創建分支等。我會考慮這一點。 –

+0

thx。我的Maven知識受到嚴格限制。 –