我正在使用TeamCity(10.x)命令行运行运行python(2)脚本。命令可执行文件设置为:
/usr/bin/python
脚本参数设置为:
./some-python-script.py --mvn_version %maven.project.version%
--artifact_id %maven.project.artifactId%
处理这些动态生成的构建参数时(来自之前的 maven runner 构建步骤,在相同的中) build),TeamCity默认将这些参数视为 list 类型对象!
因此,当我尝试将maven.project.version用作Nexus网址的一部分时,我最终会将列表作为网址的一部分: https://nexus_server/nexus/service/local/repositories/myproject/content/my/maven/group/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
答案 0 :(得分:0)
这可以通过为任何TeamCity原始变量指定列表元素后缀来解决,例如
mvn_vrsn[0]
这将产生 2.141 ,而不是['2.141']!
不理想,但有效!