Jenkins接入Java-Api远程调用

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. 构建详情,以及构建后结果的获取等信息,看我的另一篇文章

链接如下:

Jenkins远程API调用Build方法,构建并获取结果-CSDN博客

Ps:调用job的一些方法时,出现和jenkins连接的url不同的连接超时报警

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值