【问题标题】:Bamboo: Access script variable in subsequent maven taskBamboo:在后续 maven 任务中访问脚本变量
【发布时间】:2019-06-11 22:39:52
【问题描述】:

我看过很多帖子,人们要求在脚本中访问 Bamboo 变量,但这与此无关。

我在 Shell Script 任务中定义了一个变量,如下所示,然后我想在后续的 maven 任务中访问该变量。

#!/bin/sh
currentBuildNumber=${bamboo.buildNumber}
toSubtract=1
newVersion=$(( currentBuildNumber - toSubtract ))
echo "Value of newVersion: ${newVersion}"

这个非常好。但是,我有一个后续的 maven 3 任务,我尝试通过键入 ${newVersion} 来访问此变量,但出现以下错误

error   07-Jun-2019 14:12:20    Exception in thread "main" java.lang.StackOverflowError
simple  07-Jun-2019 14:12:21    Failing task since return code of [mvn --batch-mode -Djava.io.tmpdir=/tmp versions:set -DnewVersion=1.0.${newVersion}] was 1 while expected 0

基本上,我想通过使用 ${bamboo.buildNumber} 并减去一些数字来自动化构建的 jar 文件的版本号,这样我每次运行构建时都不必输入新的版本号.

感谢您的帮助...谢谢,

编辑:我也在 Atlassian 论坛上发布了同样的问题......当我在那里得到答案时,我会更新这篇文章......https://community.atlassian.com/t5/Bamboo-questions/Bamboo-Access-script-variable-in-subsequent-maven-task/qaq-p/1104334

【问题讨论】:

    标签: shell maven-3 versioning bamboo


    【解决方案1】:

    通常,我找到的最佳解决方案是将结果输出到文件并使用 Inject Variables 任务将变量读入构建。

    例如,在某些构建中我需要一个 SUFFIX 变量,所以在 bash 脚本中我最终会这样做

    SUFFIX=suffix=-beta-my-feature
    echo $SUFFIX >> .suffix.cfg
    

    然后我可以使用注入变量任务来读取该文件

    Inject Variables Task

    确保它是一个Result 变量,并且您应该能够使用${bamboo.NAMESPACE.name} 作为后缀之一,它应该是${bamboo.VERSION.suffix}

    【讨论】:

      猜你喜欢
      • 2017-03-09
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多