java调用Jenkins接口api

来源:互联网 发布:阿里云的意义 编辑:程序博客网 时间:2024/05/19 06:19

                 一直听说jenkins是自动发布部署的工具,一直没有尝试过!不知道怎么用使用,今天就自己尝试了一把!使用jenkins就萌生了自己想用java代码直接调用,创建job,然后build,这样的话,如果自己想搭建自动化构建平台也很方便啊!废话就不多不说了,直接上代码!

package com.jenkins;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import com.offbytwo.jenkins.JenkinsServer;

/**
 * @author zhangjinyang
 *
 */
public class App {
    static String url = "http://localhost:8080/jenkins";
    static JenkinsServer server;
    static StringBuilder build = new StringBuilder();
    static String name = "admin";
    static String password = "admin";
    static {
        try {

            server = new JenkinsServer(new URI(url), name, password);
            InputStream in = App.class.getResourceAsStream("config.xml");
            InputStreamReader read = new InputStreamReader(in);
            BufferedReader bufferedReader = new BufferedReader(read);
            String lineTxt = null;
            while ((lineTxt = bufferedReader.readLine()) != null) {
                build.append(lineTxt);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        String jobName = "test-job-" + UUID.randomUUID().toString();
        try {
            //创建job
            server.createJob(jobName, build.toString(), false);
            //自定义属性
            Map<String, String> map = new HashMap<String, String>();
            map.put("qq", "11111111");
            //开始build
            server.getJob(jobName).build(map);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
对了,还有一个config.xml模板,如果自己做自动发布平台的话,模板就用freemarker自己生成自己想要的!目前我这边只是做测试!具体的还需要你们自己写!

config.xml

<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
     <properties>
        <hudson.model.ParametersDefinitionProperty>
          <parameterDefinitions>
            <hudson.model.StringParameterDefinition>
              <name>qq</name>
              <description>qqq</description>
              <defaultValue>qqq</defaultValue>
            </hudson.model.StringParameterDefinition>
          </parameterDefinitions>
        </hudson.model.ParametersDefinitionProperty>
      </properties>
  <scm class="hudson.plugins.git.GitSCM" plugin="git@3.3.0">
    <configVersion>2</configVersion>
    <userRemoteConfigs>
      <hudson.plugins.git.UserRemoteConfig>
        <url>https://github.com/bingyue/easy-springmvc-maven.git</url>
      </hudson.plugins.git.UserRemoteConfig>
    </userRemoteConfigs>
    <branches>
      <hudson.plugins.git.BranchSpec>
        <name>*/master</name>
      </hudson.plugins.git.BranchSpec>
    </branches>
    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
    <submoduleCfg class="list"/>
    <extensions/>
  </scm>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Shell>
      <command>
          echo &quot;hello world!&quot;;
        M3_HOME=/Users/admin/Documents/tool/maven
        PATH=$PATH:$M3_HOME/bin
        JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
        export M3_HOME;
        export PATH;
        export JAVA_HOME;
        echo ${qq};
        mvn clean install -U;
    </command>
    </hudson.tasks.Shell>
  </builders>
  <publishers/>
  <buildWrappers/>
</project>               

原创粉丝点击