Java操作Jenkins操作凭证(Credential)信息方式

 更新时间:2020年05月12日 11:13:27   作者:llarao  
这篇文章主要介绍了Java操作Jenkins操作凭证(Credential)信息方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

jenkins-client包的api中大部分的操作是支持的,但有一些特殊操作,比如需要操作jenkins的Credential凭据信息,或是希望使用java修改Jenkins的系统配置,类似这样的操作在api中是没有的。

但依然可以通过rest的方式完成这些操作

当新增一条凭据信息时可以通过浏览器的网络监控看到他的请求内容

可以看到操作凭证的请求地址、请求参数列表,这里的参数列表的参数非常的多,但实际上在源码中读取的只有红框中的json的这一段。用postman来模拟调用一下

调用后会发现是失败的,失败原因是我们没有提供登录jenkins的认证信息

在用户管理—你的用户—设置—API TOKEN中添加token

我们会得到一个认证信息串,记录下来,重新拼装postman请求

请求地址更改为http://用户名:token@地址,发送请求即可

虽然返回值是一个页面,但我们查看一下凭据列表,请求的凭据已经被录入了

java通过jenkins-client发送请求,jenkins-client不需要使用token。

Java中通过JenkinsServer获取JenkinsHttpClient对象,使用postFromWithResult方法发送请求报文即可,但这里判断返回值的时候不能使用200判断结果,因为返回结果是一个重定向请求(302)。

HttpResponse httpResponse = staticJenkinsHttpClient.post_form_with_result("/credentials/store/system/domain/_/createCredentials", data, crumbFlag);

这个方法只有0.3.8以上版本的jenkins-client才有

如果要使用rest修改jenkins的配置应该也是一样的道理。

公司在生产环境做初期部署的时候需要修改大量的jenkins的配置和插件的参数配置,很容易忘记一些配置,如果调成一个请求完成配置应该也是不错的。

补充知识:java触发jenkins构建

背景: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构建了……

以上这篇Java操作Jenkins操作凭证(Credential)信息方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • idea右键没有java class选项问题解决方案

    idea右键没有java class选项问题解决方案

    这篇文章主要介绍了idea右键没有java class选项问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java字符串格式化功能 String.format用法详解

    Java字符串格式化功能 String.format用法详解

    String类的format()方法用于创建格式化的字符串以及连接多个字符串对象,熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处,format()方法有两种重载形式
    2024-09-09
  • java中switch条件语句的三种语法、用法及支持的参数类型

    java中switch条件语句的三种语法、用法及支持的参数类型

    Java中的switch语句是一种多分支选择结构,可以一个变量的值改变程序的控制流,这篇文章主要给大家介绍了关于java中switch条件语句的三种语法、用法及支持的参数类型的相关资料,需要的朋友可以参考下
    2024-06-06
  • javaNIO中关于ByteBuffer的用法

    javaNIO中关于ByteBuffer的用法

    这篇文章主要介绍了javaNIO中关于ByteBuffer的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Java static方法用法实战案例总结

    Java static方法用法实战案例总结

    这篇文章主要介绍了Java static方法用法,结合具体案例形式总结分析了java static方法功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • java实现模拟RPG格斗

    java实现模拟RPG格斗

    这篇文章主要介绍了java实现模拟RPG格斗,每个英雄具有以下几个属性:生命值(为0时英雄倒下)、攻击力(每次攻击时扣除对方的生命值点数)、攻击间隔(每次攻击过后都要等待间隔时间才能进行下次攻击首次攻击之前也要先等待间隔时间)简单设置了下吧,小伙伴可以参考下
    2015-03-03
  • Java线程操作的常见方法【线程名称获取、设置、线程启动判断等】

    Java线程操作的常见方法【线程名称获取、设置、线程启动判断等】

    这篇文章主要介绍了Java线程操作的常见方法,结合实例形式总结分析了java线程的创建、线程名称的获取、设置以及线程启动的判断等相关操作实现技巧,需要的朋友可以参考下
    2019-10-10
  • Spring Boot 启动端口如何启动

    Spring Boot 启动端口如何启动

    这篇文章主要介绍了Spring Boot 启动端口如何启动的相关资料,需要的朋友可以参考下
    2016-12-12
  • JAVA使用POI获取Excel的列数与行数

    JAVA使用POI获取Excel的列数与行数

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 下面这篇文章给大家介绍了JAVA使用POI获取Excel列数和行数的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • Java多线程ThreadPoolExecutor详解

    Java多线程ThreadPoolExecutor详解

    这篇文章主要介绍了Java多线程ThreadPoolExecutor详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论