1. 引入依赖,在pom文件中
<!--jenkins-java-client-->
<dependency>
<groupId>com.offbytwo.jenkins</groupId>
<artifactId>jenkins-client</artifactId>
<version>0.3.8</version>
</dependency>
2. 创建jenkins的参数实体类,方便后续的调用
@Data
public class JenkinsProperties {
private String serverUri;
private String username;
private String password;
}
3. 创建配置类,在配置类里面实现jenkins的连接
@Slf4j
@Configuration
public class JenkinsConfig {
/*为jenkinsProperties注入配置值,也可以在jenkinsProperties上添加Component注解和ConfigurationProperties(prefix="project.jenkins")注解来实现注入功能*/
@Bean
@ConfigurationProperties(prefix = "project.jenkins")
public JenkinsProperties jenkinsProperties() {
return new JenkinsProperties();
}
/*注入jenkinsHttpClient对象*/
@Bean(name = "jenkinsHttpClient")
@Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON)
public JenkinsHttpClient getJenkinsHttpClient(@Qualifier("jenkinsProperties") JenkinsProperties jenkinsProperties) throws Exception {
System.out.println(jenkinsProperties);
return new JenkinsHttpClient(
new URI(jenkinsProperties.getServerUri()),
jenkinsProperties.getUsername(),
jenkinsProperties.getPassword());
}
/*注入jenkinsServer对象*/
@Bean(name = "jenkinsServer")
@Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON)
public JenkinsServer getJenkinsServer(@Qualifier("jenkinsHttpClient") JenkinsHttpClient jenkinsHttpClient) {
log.debug("Creating JenkinsServer Bean");
return new JenkinsServer(jenkinsHttpClient);
}
}
4.构建测试类进行体验,以含参构建方法为例
@Slf4j
@SpringBootTest(classes = { com.gfqh.base.GfqhBaseApplication.class })//换成自己项目的启动类
public class JenkinsTest {
private final JenkinsServer jenkinsServer;
// 通过构造函数注入(推荐方式)
@Autowired
public JenkinsTest(JenkinsServer jenkinsServer) {
this.jenkinsServer = jenkinsServer;
log.info("JenkinsServer 实例已注入: {}", jenkinsServer);
}
@Test
public void BulidTest() {
try {
// 获取 Job 列表
Map<String,Job> jobs = jenkinsServer.getJobs();
// 获取 Job 信息
Job job = jenkinsServer.getJob("合并分支");
// build有参测试
// 设置参数值
Map<String, String> param = new HashMap<>();
param.put("TARGET", "test1");//目标分支
param.put("BRANCH", "test2");//原分支
QueueReference queueReference = job.build(param, true);
log.info("bulid...");
} catch (IOException e) {
e.printStackTrace();
}
}
}
5. 构建详情,以及构建后结果的获取等信息,看我的另一篇文章
链接如下: