2010-02-02 58 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知识受到严格限制。 –