1

我正在使用 TeamCity (10.x)命令行运行器运行 python (2) 脚本。命令可执行文件设置为:

/usr/bin/python

并且脚本参数设置为:

./some-python-script.py --mvn_version %maven.project.version% 
--artifact_id %maven.project.artifactId%

在处理这些动态生成的构建参数时(来自之前的 maven runner 构建步骤,在同一个构建中),TeamCity 默认将这些参数视为列表类型对象!

因此,当尝试使用 maven.project.version 作为我的 Nexus URL 的一部分时,我最终会得到一个列表作为 url 的一部分: https://nexus_server/nexus/service/local/repositories/myproject/content/my/行家/组/some_artifact/['2.141 ']

在 Linux 命令行上运行相同的脚本时,相同的参数被视为字符串。正如预期的那样,由于(注意类型str):

parser.add_argument('-mv', '--mvn_vrsn', type=str, nargs=1, \
default='2.140.0-SNAPSHOT', help='TCity: maven.project.version')

...我得到了预期的结果: https://nexus_server/nexus/service/local/repositories/myproject/content/my/maven/group/some_artifact/2.141

4

1 回答 1

0

这可以通过为任何 TeamCity 原始变量指定列表元素后缀来解决,例如

mvn_vrsn[0] 

这将产生2.141而不是 ['2.141']!

不理想,但它有效!

于 2018-01-08T16:16:33.797 回答