在 teamcity 中的构建之间共享属性不起作用

问题描述 投票:0回答:1

我有两个版本 -

Build Dev
Deploy Dev
Build Dev
正在检查包含
pom.xml
的 Maven 构建工具项目。因此,在这个构建中,我可以访问像
%maven.project.version%
这样的属性。这里的问题是
Deploy Dev
实际上也需要这些属性,但它们是两个不同的版本。

现在我读到了快照依赖关系,我可以将两个构建链接到一个构建链中,并且它们一起共享源快照。我什至启用了他们使用相同构建代理的功能。

我以为可能就是这样,但事实并非如此。构建代理仍然不兼容,并且永远不会触发

Deploy Build

可以访问依赖项构建的属性(在here中进行了解释)但是似乎仅适用于特定属性。我无法像这样访问

%dep.build_dev.maven.project.name%

任何人都可以解释我如何在这两个构建之间共享这些 Maven 属性吗?

maven teamcity
1个回答
0
投票

你是对的,Maven 构建的评估属性不能用作下游依赖项的参数。当阅读此错误单时,TeamCity 似乎以不同的方式处理来自 Maven 的这些“结果”参数。

但是您可以通过永久存储此瞬态参数来规避此问题!

  1. 在构建配置中定义参数
    MAVEN_PROJECT_VERSION_EVALUATED
    ,以便下游依赖项可以引用它。使用空值或任意值定义它 - 它将被您的构建步骤覆盖。
  2. 创建一个 Command Line 构建步骤,将
    %maven.project.version%
    存储在您刚刚定义的参数中:
    echo "##teamcity[setParameter name='MAVEN_PROJECT_VERSION_EVALUATED' value='%maven.project.version%']"
  3. 现在您可以从下游依赖项引用该参数:
    %dep.<other build ID>.MAVEN_PROJECT_VERSION_EVALUATED%
© www.soinside.com 2019 - 2024. All rights reserved.