【问题标题】:How can I get Maven to write a property into a property file at package time?如何让 Maven 在打包时将属性写入属性文件?
【发布时间】:2011-04-06 08:05:47
【问题描述】:

对于持续集成,我使用的是 Maven 2 和 TeamCity 5.1.2。我的构建器编号由模式%maven.project.version%.{0} 定义,并以${build.number} 的形式导出到 Maven 构建脚本

当构建创建 jar 文件时,我希望 jar 包含一个属性文件,其中包含以下信息:

build.number=#1.1-SNAPSHOT.106

这样可以在运行时显示内部版本号等。

【问题讨论】:

  • 这是几乎完全相同的问题:stackoverflow.com/questions/3532135/…
  • 几乎,但不完全是。 Seanizer 提到的帖子中的解决方案让我走得很远。现在,构建完成后我的属性文件中有:build.number=%maven.project.version%.113。

标签: java maven-2 teamcity


【解决方案1】:

您可以拥有一份属性文件的副本,其中包含内部版本号的占位符

build.number=${build.number}

比启用过滤的复制。

【讨论】:

    【解决方案2】:

    根据评论,听起来 %maven.project.version% 没有被 TeamCity 取代。您获得的是构建作业编号,但没有获得 maven ID 的值。

    我会考虑分两部分来做这件事。

    ${build.number} 可以只包含实际的内部版本号,而不是 %maven.project.version%?

    如果是这样,您应该可以让您的属性文件说:

    build.number=#${project.version}.${build.number}
    

    理论上会产生:

    build.number=#1.1-SNAPSHOT.106
    

    但没有与 TeamCity 合作过,这只是一个理论。

    【讨论】:

      【解决方案3】:

      试试

      build.number=${buildNumber}
      

      ${buildNumber} 是 Maven 添加下一个数字的占位符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-06
        • 2015-04-21
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 2017-05-08
        相关资源
        最近更新 更多