1. 程式人生 > 其它 >Jenkins外掛開發環境搭建及除錯方式

Jenkins外掛開發環境搭建及除錯方式

技術標籤:jenkinsjavamavenjenkins

文章目錄


該篇文章介紹使用Idea進行jenkins外掛開發的步驟(只涉及基本環境搭建和除錯)

Jenkins外掛開發環境搭建

基礎環境

軟體名稱版本備註
MavenApache Maven 3.6.1
JAVA1.8.0_131
IDEA2019.2

配置maven的環境

修改maven目錄下的settings.xml檔案。

<settings>
  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>

  <profiles>
    <!-- Give access to Jenkins plugins -->
    <profile>
      <id>jenkins</id>
      <activation>
        <activeByDefault
>
true</activeByDefault> <!-- change this to false, if you don't like to have it on per default --> </activation> <repositories> <repository> <id>repo.jenkins-ci.org</id> <url>https://repo.jenkins-ci.org/public/</url
>
</repository> </repositories> <pluginRepositories> <pluginRepository> <id>repo.jenkins-ci.org</id> <url>https://repo.jenkins-ci.org/public/</url> </pluginRepository> </pluginRepositories> </profile> </profiles> <mirrors> <mirror> <id>repo.jenkins-ci.org</id> <url>https://repo.jenkins-ci.org/public/</url> <mirrorOf>m.g.o-public</mirrorOf> </mirror> </mirrors> </settings>

使用maven的命令建立一個建立

使用如下命令建立一個新的外掛

mvn org.jenkins-ci.tools:maven-hpi-plugin:create (或者 mvn hpi:create)

設定idea中執行外掛的方式

mvn hpi:run -Djetty.port =8090

基礎配置項:

-Djetty.port 設定埠

-DJENKINS_HOME 設定jenkins的資料目錄

配置外掛的pom.xml檔案使得idea可以執行

設定pom.xml檔案

如果引入高版本jenkins需要設定日誌的版本

  <properties>
    <java.level>8</java.level>
    <jenkins.version>2.190.1</jenkins.version>
    <slf4jVersion>1.7.26</slf4jVersion>
  </properties>

完整的pom.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.jenkins-ci.plugins</groupId>
    <artifactId>plugin</artifactId>
    <!-- Baseline Jenkins version you use to build and test the plugin. Users must have this version or newer to run. -->
    <version>3.50</version>
    <relativePath/>
  </parent>
  <groupId>com.szkingdom.cicd.plugins</groupId>
  <artifactId>wStatistics</artifactId>
  <version>1.0.0-RELEASE</version>
  <packaging>hpi</packaging>
  <name>TODO Plugin</name>
  <description>TODO</description>
  <url>https://wiki.jenkins-ci.org/display/JENKINS/TODO+Plugin</url>
  <licenses>
    <license>
      <name>MIT License</name>
      <url>http://opensource.org/licenses/MIT</url>
    </license>
  </licenses>

  <properties>
    <java.level>8</java.level>
    <jenkins.version>2.190.1</jenkins.version>
    <slf4jVersion>1.7.26</slf4jVersion>
    <workflow-support.version>3.2</workflow-support.version>
  </properties>

  <repositories>
    <repository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </pluginRepository>
  </pluginRepositories>
  <!-- If you want to depend on other plugins:
  <dependencies>
    <dependency>
      <groupId>org.jenkins-ci.plugins</groupId>
      <artifactId>credentials</artifactId>
      <version>1.9.4</version>
    </dependency>
  </dependencies>
  -->



  <dependencies>
  </dependencies>

</project>

訪問的路徑

繼承Plugin類 可以通過/plugin/(外掛名稱)/ 訪問

@ExportedBean
public class wPlugin extends Plugin {
    @WebMethod(name = "test")
    public HttpResponse doTest(){
        return HttpResponses.errorJSON("dd");
    }
}

啟動與除錯外掛

使用Hpi啟動

1、新增maven啟動項
在這裡插入圖片描述

2、修改maven的配置項
在這裡插入圖片描述
Working directory: 工作目錄,也就是外掛的根目錄

Command line: 命令列,mvn hpi:run -Djetty.port =8090

基礎配置項:

-Djetty.port 設定埠

-DJENKINS_HOME 設定jenkins的資料目錄

使用Tomcat啟動

1、新增maven啟動項
在這裡插入圖片描述
2、修改maven的配置項
在這裡插入圖片描述

Working directory: 工作目錄,也就是外掛的根目錄

Command line: 命令列,-Dmaven.tomcat.path=/ -DJENKINS_HOME=E:\WS\CompanyWS\ktmp\kt\main\jenkins\release\cicd-data -Dmaven.tomcat.port=8087 -Dmaven.tomcat.uriEncoding=UTF-8 tomcat:run

基礎配置項

-Dmaven.tomcat.path : 訪問路徑

-DJENKINS_HOME :jenkins資料目錄

-Dmaven.tomcat.port :tomcat啟動的埠

-Dmaven.tomcat.uriEncoding :tomcat請求編碼格式

遠端調式方式

1、將打包好的外掛放在jenkins資料目錄的plugins目錄下

2、在使用以下的指令啟動jenkins

# 在外掛的目錄啟動
set MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8095
mvn -Djetty.port=8090 hpi:run

# 或者在已有的jenkins.war目錄下執行
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8095 -Dfile.encoding=GBK -Dpermissive-script-security.enabled=true -jar jenkins.war --ajp13Port=-1 --httpPort=8787 

3、IDEA中使用remote進行除錯