背景:jenkins集成了sonarqube,并解决了jenkins分布式分发部署,现在需要自动触发jenkins部署,使用java语言实现。
注:jenkins分布式分发,不用人为配置,master和slave配置了几个并发,那么就可以同时构建几个job,其他job排队等候,等有空闲的节点,会自动分发。
目录:
1.开启jenkins全局安全配置
2.引用Jenkins-client的jar包
3.编码实现jenkins构建
=============================
1.开启jenkins全局安全配置
路径:系统配置-全局安全设置
2.引用Jenkins-client的jar包
maven官网找到Jenkins-client的依赖添加到pom.xml中
<dependency>
<groupId>com.offbytwo.jenkins</groupId>
<artifactId>jenkins-client</artifactId>
<version>0.3.7</version>
</dependency>
3.编码实现jenkins构建
URI uri = new URI("jenkins地址");
JenkinsHttpClient client = new JenkinsHttpClient(uri, "jenkins用户名", "jenkins密码");
JenkinsServer jenkinsServer = new JenkinsServer(client);
//获取所有job
Map<String, Job> jobs = jenkinsServer.getJobs();
//触发jenkins构建
jenkinsServer.getJob("job名称").build();
//获取最后一次构建结果,结果为BuildResult枚举类型
jenkinsServer.getJob("job名称").getLastBuild().details().getResult();
需要注意,导入的包要正确
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.offbytwo.jenkins.JenkinsServer;
import com.offbytwo.jenkins.client.JenkinsHttpClient;
import com.offbytwo.jenkins.model.BuildResult;
import com.offbytwo.jenkins.model.Job;
然后就可以根据job名称触发jenkins构建了……