java驱动jenkins构建job

java驱动jenkins构建job

配置完成jenkins工程后,在jenkins可视化页面可以直接构建job,当然也可以通过java驱动jenkins接口,构建job。

package jenkinsApi;

import java.io.IOException;
import java.net.URI;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class Job {
	//jenkins登录账号
	public static String username = "XXXX";
	//jenkins登录密码
	public static String password = "XXXXXXXXX";
	//jenkins登录url
	public static String jenkinsUrl = "http://ip:port/jenkins";
	public static String buildToken = "buildToken";
	public static void main(String [] args) throws ClientProtocolException, IOException{
		Job job = new Job();
		//job.buildJob("YourJobName",true,null);
		//job.buildJob("YourJobName",true,"param1=value1&param2=value2&param3=value3");
		job.buildJob("YourJobName", false , "xxxx");
	}
	/*
	 * 调用jenkins接口,构建job
	 * 1、jobName:需要构建的jenkins工程的名字
	 * 2、buildJobParams:构建jenkins工程时需要的参数
	 * 3、isNeedParams:jenkins工程的类型,如果jenkins工程带参数,isNeedParams=ture(isNeedParams=true时,buildJobParams生效,参数格式:key1=value1&key2=value2...,不填写参数时jenkins使用默认参数)
	 *                        如果jenkins工程不带参数,isNeedParams=false(isNeedParams=false时,buildJobParams不生效,可以随便填写)
	 */
	public void buildJob(String jobName ,Boolean isNeedParams ,String buildJobParams) throws ClientProtocolException, IOException{
		//jenkins构建job的url
		String jenkinsBuildUrl = jenkinsUrl + "/job/" + jobName + "/build";
		if(isNeedParams == true){
			jenkinsBuildUrl = jenkinsUrl + "/job/" + jobName + "/buildWithParameters" + "?" + buildJobParams;
		}
		URI uri = URI.create(jenkinsBuildUrl);
		HttpHost host = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme());
		CredentialsProvider credsProvider = new BasicCredentialsProvider();
		credsProvider.setCredentials(new AuthScope(uri.getHost(), uri.getPort()), new UsernamePasswordCredentials(username, password));
		// Create AuthCache instance
		AuthCache authCache = new BasicAuthCache();
		// Generate BASIC scheme object and add it to the local auth cache
		BasicScheme basicAuth = new BasicScheme();
		authCache.put(host, basicAuth);
		CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
		HttpPost httpPost = new HttpPost(uri);
		// Add AuthCache to the execution context
		HttpClientContext localContext = HttpClientContext.create();
		localContext.setAuthCache(authCache);
		HttpResponse response = httpClient.execute(host, httpPost, localContext);
		EntityUtils.toString(response.getEntity());
	}
	
}

注:本代码只涉及构建job,参考了大牛的部分代码


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值