2016-02-10 67 views
1

我使用较新的“p4”perforce plugin,我有几十个工作。我现在需要更改Perforce凭据。以下groovy脚本(在脚本控制台中运行)将打印出来,但PerforceScm.java中的“凭证”字段是最终的,因此我无法对其进行修改。有没有更新此配置的方法?我可以使用jenkins groovy脚本修改perforce凭证吗?

projects = Hudson.instance.projects 
projects.each(proj -> 
    println(scm.credential) 
} 

我觉得必须有一些配置项用于构造一个PerforceScm对象。例如。有一个描述符,可以使用“scm.getDescriptor()”,它有一个凭证字段。但是,当我打印它时,该字段为空。

+0

我避免使用P4 plugin..we可以导出所需的凭证在生成步骤的执行壳..(像..export P4PORT = someValue中),同样地对于P4USER, P4CLIENT ..等等......在groovy脚本中可能会有一个配置来获取Hudson中构建步骤的shell。您可以导出这些值 – prvn

回答

1

如果循环遍历Hudson.instance.items,则可以使用item.scm.setP4Passwd(“”)更新该值。

for(item in Hudson.instance.items) { 
    if(item.scm instanceof hudson.plugins.perforce.PerforceSMC) { 
    item.scm.setP4Passwd("asdf"); 
    item.save(); 
    } 
} 
0
def jenkins = hudson.model.Hudson.instance 
def srcJob = jenkins.getItemByFullName(<SOURCE_JOB>) 
scm = srcJob.scm; 
if(scm instanceof hudson.plugins.git.GitSCM){ 
    print "need to check for git or simply ignore." 
}else if(scm instanceof hudson.plugins.perforce.PerforceSCM){ 
    scm.setP4Passwd("*******") 
    scm.setP4User("newUser") 
} 
相关问题