使用Maven动态设置POM中定义的变量

时间:2014-02-10 16:39:24

标签: maven

我正在开展一项任务,为我的应用程序动态构建一个“关于”(静态HTML)页面,并希望使用TeamCity项目的内部版本号进行设置。我们希望为每个部署生成和部署不同的版本。这导致我想要将值存储到我的构建中使用的变量。

所以我看到的挑战是:

  

如何在Maven构建期间动态地为变量分配值   阶段,然后有可用于构建的其他部分   (例如生成文件)。


我正在尝试做的背景如下(突出显示当前变量问题):

  1. 通过REST调用从Team City Build Server获取价值
  2. 将值分配给Maven变量
  3. 在文件生成期间使用变量
  4. 利润
  5. 然而,似乎大多数链接指的是从属性文件中获取值,而不是在构建执行期间动态设置它们。


    最后 - 我想我会用Ant-Run插件做一些这个

1 个答案:

答案 0 :(得分:1)

如果在已处理资源中使用${buildNumber},maven将自动从团队城市中获取内部版本号,并使用适当的值替换该变量(不使用REST或任何其他复杂技术)。显然,这不会发生在本地版本中,但我的团队没有问题。使用构建配置文件很容易解决这个问题,当构建位于本地环境而不是团队城市时,构建配置文件会为变量分配一些值。

我们还使用%build.vcs.number%作为内部版本号格式,以强制团队城市使用svn内部版本号,而不是使用自己的任意内部版本号。