【发布时间】:2016-11-03 18:06:45
【问题描述】:
所以问题是,如果不调用 setControllerIP,我无法使用 getControllerIP 方法获取控制器 IP 变量的默认值。我在本地尝试了类似的 groovy 代码,它可以工作,但不能在我的 jenkins 服务器上工作。还在我的 groovy 脚本中尝试了许多其他组合,但没有任何效果。 请注意,我们使用的是 Jenkins:管道共享 groovy 库插件。
这是我在 Jenkins 上的管道工作:
node{
def controllerParameters = new com.company.project.controller.DeploymentParameters() as Object
controllerParameters.setOSUsername('jenkins')
controllerParameters.setOSPassword('jenkins123')
controllerParameters.setBuildNumber(33)
//controllerParameters.setControllerIP('192.44.44.44')
//if I uncomment above line everything works fine but I need to get default value in a case
echo "I want the default value from other file"
controllerParameters.getControllerIP()
echo "my code hangs on above line"
}
这是我的另一个文件 ../controller/DeploymentParameters.groovy
package com.company.project.controller
import groovy.transform.Field
def String osUsername
def String osPassword
@Field String controllerIP = "NotCreated" //tried few combinations
//Open Stack username
def String setOSUsername(String osUsername) {
this.osUsername = osUsername
}
def String getOSUsername() {
return this.osUsername
}
//Open Stack password
void setOSPassword(String osPassword) {
this.osPassword = osPassword
}
def String getOSPassword() {
return this.osPassword
}
//Open Stack floating ip of master vm
void setControllerIP(String controllerIP) {
this.controllerIP = controllerIP
}
def String getControllerIP() {
return this.controllerIP
}
【问题讨论】: