我看过很多帖子,人们要求访问脚本中的竹子变量,但这不是关于这个的。
我在Shell脚本任务中定义了一个变量,如下所示,然后我想在后续的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
发布于 2019-06-11 14:39:53
一般来说,我找到的最佳解决方案是将结果输出到一个文件中,并使用Inject Variables任务将变量读取到构建中。
例如,在一些构建中,我需要一个后缀变量,所以在bash脚本中,我最终要做的是
SUFFIX=suffix=-beta-my-feature
echo $SUFFIX >> .suffix.cfg
然后,我可以使用注入变量任务来读取该文件
确保它是一个Result
变量,并且您应该能够使用${bamboo.NAMESPACE.name}
作为后缀1,它应该是${bamboo.VERSION.suffix}
https://stackoverflow.com/questions/56488718
复制