mc8*_*c88 1 groovy jenkins-pipeline
我正在尝试比较詹金斯管道中的两个字符串。代码大致如下所示:
script {
def str1 = 'test1.domainname-test.com'
def str2 = 'test1.domainname-test.com'
if ( str1 == str2 ) {
currentBuild.result = 'ABORT'
error("TENANT_NAME $TENANT_NAME.domainname-test.com is already defined in domainname-test.com record set. Please specify unique name. Exiting...")
}
}
Run Code Online (Sandbox Code Playgroud)
由于简单起见,str1由前面的命令提供。我收到此错误:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: No such field found: field java.lang.String domainname
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我也尝试过equals方法,结果相同。好像它粘在那些圆点上,认为这是某种性质。提前致谢
您缺少TENANT_NAME变量名周围的大括号。在您的示例中:
error("TENANT_NAME $TENANT_NAME.domainname-test.com is already defined in domainname-test.com record set. Please specify unique name. Exiting...")
Run Code Online (Sandbox Code Playgroud)
该$标志适用于TENANT_NAME.domainname。由于TENANT_NAME是字符串,当您尝试domainname从String类访问属性时,Groovy解释了以下部分,并且您没有找到这样的字段:字段java.lang.String域名异常。
为避免此类问题,请用包裹您的变量名,这样{}就可以了。
error("TENANT_NAME ${TENANT_NAME}.domainname-test.com is already defined in domainname-test.com record set. Please specify unique name. Exiting...")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |