【发布时间】:2014-06-27 00:00:42
【问题描述】:
如何从 groovy 脚本中设置 jdk 版本以供 Sonar 在 Jenkins 作业配置中使用。我要求声纳 jdk 与用于通过 maven 构建的作业实际 jdk 不同。我已经成功地进入了可以检索 Sonar 使用的作业 jdk 版本但找不到设置它的方法的阶段。有什么建议吗?
import hudson.util.*;
import hudson.tasks.Publisher;
def h = Hudson.getInstance();
def projects = h.getProjects();
for (project in projects) {
def DescribableList<Publisher,Descriptor<Publisher>> publishers = project.getPublishersList();
for (publisher in publishers) {
def desc = publisher.getDescriptor();
if (desc.getId().equals("hudson.plugins.sonar.SonarPublisher")) {
println(publisher.getJDK());
//((hudson.plugins.sonar.SonarPublisher) publisher).setJDK(h.getJDK("Sun JDK 1.7.45"));
}
}
}
【问题讨论】:
-
你确定你可以定义一个不同的JDK吗?我的意思是通过用户界面?当我查看 SonarPublisher 的来源时,似乎 getJdk() 只是委托给 Jenkins/Hudson 实例。这意味着您不能覆盖用于 Sonar 的 JDK。
-
当访问配置页面并导航到声纳然后按高级按钮时,可以看到一个下拉菜单以设置使用的 JDK。