最新的构建Jenkins插件的方式

记录瞬间

  最近想要了解一下Jenkins的插件如何开发,所以在网上找了一些资料,但是经过一番周折,发现之前的一些方法不能使用了,在此呢,根据自己的一些经历,简述一些开发Jenkins插件变化的地方。

  网上主要集中在构建Jenkins插件的框架上,前后的一些信息基本不变,比如:对Maven、Java版本的要求,修改settings.xml文件,后续开发代码的编写等基本都是不变的。

  JDK版本要求在1.6以上、Maven官方要求版本在3以上

  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 hpi:create或者mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create   但是实际执行会报错

D:\Tools\jenkins-plugin>mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/jenkins-ci/tools/maven-hpi-plugin/maven-metadata.xml
Downloading from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/org/jenkins-ci/tools/maven-hpi-plugin/maven-metadata.xml
Downloaded from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/org/jenkins-ci/tools/maven-hpi-plugin/maven-metadata.xml (3.4 kB at 2.1 kB/s)
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-hpi-plugin:3.11:create (default-cli) @ standalone-pom ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.652 s
[INFO] Finished at: 2020-01-15T18:39:35+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.jenkins-ci.tools:maven-hpi-plugin:3.11:create (default-cli) on project standalone-pom: Unimplemented!
[ERROR] hpi:create is obsolete. Instead use:
[ERROR] ====
[ERROR] mvn archetype:generate -Dfilter=io.jenkins.archetypes:
[ERROR] ====
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

  

根据报错信息中的提示,需要执行的命令已经改为:mvn archetype:generate -Dfilter=io.jenkins.archetypes

我们执行此条命令后,发现并没有实际的变化,只是下载了一些依赖包

D:\Tools\jenkins-plugin>mvn archetype:generate -Dfilter=io.jenkins.archetypes
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] Your filter doesn't match any archetype, so try again with another value.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.987 s
[INFO] Finished at: 2020-01-15T18:43:30+08:00
[INFO] ------------------------------------------------------------------------

说明我们的操作只对了一部分,不是完全正确需要进一步的执行,

实际需要执行的命令为:mvn archetype:generate -Dfilter=io.jenkins.archetypes:plugin

D:\Tools\jenkins-plugin>mvn archetype:generate -Dfilter=io.jenkins.archetypes:plugin
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> io.jenkins.archetypes:empty-plugin (Skeleton of a Jenkins plugin with a POM and an empty source tree.)
2: remote -> io.jenkins.archetypes:global-configuration-plugin (Skeleton of a Jenkins plugin with a POM and an example piece of global configuration.)
3: remote -> io.jenkins.archetypes:hello-world-plugin (Skeleton of a Jenkins plugin with a POM and an example build step.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1
Choose io.jenkins.archetypes:empty-plugin version:
1: 1.0
2: 1.1
3: 1.2
4: 1.3
5: 1.4
6: 1.5
7: 1.6
Choose a number: 7: 7
Downloading from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/io/jenkins/archetypes/empty-plugin/1.6/empty-plugin-1.6.pom
Downloaded from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/io/jenkins/archetypes/empty-plugin/1.6/empty-plugin-1.6.pom (717 B at 770 B/s)
Downloading from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/io/jenkins/archetypes/archetypes-parent/1.6/archetypes-parent-1.6.pom
Downloaded from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/io/jenkins/archetypes/archetypes-parent/1.6/archetypes-parent-1.6.pom (4.6 kB at 8.0 kB/s)
Downloading from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/org/kohsuke/pom/21/pom-21.pom
Downloaded from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/org/kohsuke/pom/21/pom-21.pom (6.1 kB at 11 kB/s)
Downloading from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/io/jenkins/archetypes/empty-plugin/1.6/empty-plugin-1.6.jar
Downloaded from repo.jenkins-ci.org: https://repo.jenkins-ci.org/public/io/jenkins/archetypes/empty-plugin/1.6/empty-plugin-1.6.jar (1.5 kB at 2.2 kB/s)
[INFO] Using property: groupId = unused
Define value for property 'artifactId': com.sza.sza
Define value for property 'version' 1.0-SNAPSHOT: : 1.0.0
[INFO] Using property: package = unused
Confirm properties configuration:
groupId: unused
artifactId: com.sza.sza
version: 1.0.0
package: unused
 Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: empty-plugin:1.6
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: unused
[INFO] Parameter: artifactId, Value: com.sza.sza
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: package, Value: unused
[INFO] Parameter: packageInPathFormat, Value: unused
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: package, Value: unused
[INFO] Parameter: groupId, Value: unused
[INFO] Parameter: artifactId, Value: com.sza.sza
[INFO] Project created from Archetype in dir: D:\Tools\jenkins-plugin\com.sza.sza
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:09 min
[INFO] Finished at: 2020-01-15T18:47:18+08:00
[INFO] ------------------------------------------------------------------------

  上面的配置中,由于groupID和package都没有进行设置,所以,在执行到    Y::   时,我们可以输入N来进行重新选择

D:\Tools\jenkins-plugin>mvn archetype:generate -Dfilter=io.jenkins.archetypes:plugin
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> io.jenkins.archetypes:empty-plugin (Skeleton of a Jenkins plugin with a POM and an empty source tree.)
2: remote -> io.jenkins.archetypes:global-configuration-plugin (Skeleton of a Jenkins plugin with a POM and an example piece of global configuration.)
3: remote -> io.jenkins.archetypes:hello-world-plugin (Skeleton of a Jenkins plugin with a POM and an example build step.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :
Choose archetype:
1: remote -> io.jenkins.archetypes:empty-plugin (Skeleton of a Jenkins plugin with a POM and an empty source tree.)
2: remote -> io.jenkins.archetypes:global-configuration-plugin (Skeleton of a Jenkins plugin with a POM and an example piece of global configuration.)
3: remote -> io.jenkins.archetypes:hello-world-plugin (Skeleton of a Jenkins plugin with a POM and an example build step.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 3
Choose io.jenkins.archetypes:hello-world-plugin version:
1: 1.1
2: 1.2
3: 1.3
4: 1.4
5: 1.5
6: 1.6
Choose a number: 6:
[INFO] Using property: groupId = unused
Define value for property 'artifactId':
Define value for property 'version' 1.0-SNAPSHOT: :
[INFO] Using property: package = io.jenkins.plugins.sample
[WARNING] Archetype is not fully configured
[INFO] Using property: groupId = unused
Define value for property 'artifactId': 1
[INFO] Using property: version = 1.0-SNAPSHOT
[INFO] Using property: package = io.jenkins.plugins.sample
Confirm properties configuration:
groupId: unused
artifactId: 1
version: 1.0-SNAPSHOT
package: io.jenkins.plugins.sample
 Y: : N
Define value for property 'groupId' unused: : com.sza
Define value for property 'artifactId': test
Define value for property 'version' 1.0-SNAPSHOT: : 1.0.0
Define value for property 'package' io.jenkins.plugins.sample: : com.sza
Confirm properties configuration:
groupId: com.sza
artifactId: test
version: 1.0.0
package: com.sza
 Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: hello-world-plugin:1.6
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.sza
[INFO] Parameter: artifactId, Value: test
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: package, Value: com.sza
[INFO] Parameter: packageInPathFormat, Value: com/sza
[INFO] Parameter: package, Value: com.sza
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: groupId, Value: com.sza
[INFO] Parameter: artifactId, Value: test
[INFO] Project created from Archetype in dir: D:\Tools\jenkins-plugin\test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:39 min
[INFO] Finished at: 2020-01-16T13:47:25+08:00
[INFO] ------------------------------------------------------------------------

据此,可以在目录下查看到构建新的Jenkins插件的架构。

接下来,就可以顺利的进行代码开发了。开发过程,网上较多,在此不做赘述。

============我是底线=============

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/968143.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM(Java 虚拟机)

Java语言的解释性和编译性&#xff08;通过JVM 的执行引擎&#xff09; Java 代码&#xff08;.java 文件&#xff09;要先使用 javac 编译器编译为 .class 文件&#xff08;字节码&#xff09;&#xff0c;紧接着再通过JVM 的执行引擎&#xff08;Execution Engine&#xff09…

Unity3D实现显示模型线框(shader)

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果展示👉二、第一种方式👉二、第二种方式👉壁纸分享👉总结👉前言 在 Unity 中显示物体线框主要基于图形渲染管线和特定的渲染模式。 要显示物体的线框,通常有两种常见的方法:一种是利用内置的渲染…

java项目之直销模式下家具工厂自建网站源码(ssm+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的直销模式下家具工厂自建网站源码。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 直销模式下家具…

window 安装GitLab服务器笔记

目录 视频&#xff1a; 资源&#xff1a; Linux CeneOS7&#xff1a; VMware&#xff1a; Linux无法安装 yum install vim -y 1.手动创建目录 2.下载repo PS 补充视频不可复制的代码 安装GitLab *修改root用户密码相关&#xff08;我卡在第一步就直接放弃了这个操作&…

笔记:理解借贷相等的公式

强烈推荐非会计人士&#xff0c;快速了解会计看这个系列的视频&#xff0c;其中比较烧脑的“借贷相等”公式&#xff0c;这个视频讲解的不错&#xff1a; 4.小白财务入门-借贷记账法_哔哩哔哩_bilibili 比如这里&#xff0c;钱在银行卡重&#xff0c;所以银行存款就是借方…

Qt - 地图相关 —— 3、Qt调用高德在线地图功能示例(附源码)

效果 作者其他相关文章链接:           Qt - 地图相关 —— 1、加载百度在线地图(附源码)           Qt - 地图相关 —— 2、Qt调用百度在线地图功能示例全集,包含线路规划、地铁线路查询等(附源码)           Qt - 地图相关 —— 3、Qt调用…

使用 POI-TL 和 JFreeChart 动态生成 Word 报告

文章目录 前言一、需求背景二、方案分析三、 POI-TL JFreeChart 实现3.1 Maven 依赖3.3 word模板设置3.2 实现代码 踩坑 前言 在开发过程中&#xff0c;我们经常需要生成包含动态数据和图表的 Word 报告。本文将介绍如何结合 POI-TL 和 JFreeChart&#xff0c;实现动态生成 W…

jenkins备份还原配置文件

下载ThinBackup插件 方式1 从插件市场直接下载 Manage Jenkins->Manage Plugins->可选插件搜索 注意&#xff1a;有时可能因为网络或者版本问题下载不了&#xff0c;好像是默认下载最新版本&#xff0c;可选择手动安装&#xff01; 方式二 手动安装插件 点击查看手…

C++蓝桥杯基础篇(二)

片头 嗨&#xff01;小伙伴们&#xff0c;今天我们将学习C蓝桥杯基础篇&#xff08;二&#xff09;&#xff0c;继续练习相关习题&#xff0c;准备好了吗&#xff1f;咱们开始咯~ 第1题 简单计算器输入两个数&#xff0c;以及一个运算符 &#xff0c;-&#xff0c;*&#xff…

将 AMD Zynq™ RFSoC 扩展到毫米波领域

目录 将 AMD Zynq™ RFSoC 扩展到毫米波领域Avnet XRF RFSoC 系统级模块适用于 MATLAB 的 Avnet RFSoC Explorer 工具箱5G mmWave PAAM 开发平台突破性的宽带毫米波波束成形特征&#xff1a;OTBF103 Mathworks Simulink 模型优化毫米波应用中的射频信号路径 用于宽带毫米波上/下…

1Panel配置java运行环境运行springboot项目

一、实际运行效果 1panel上java容器springboot的简单web项目 二、详细操作 步骤一、完成spring项目的打包&#xff0c;生成jar文件 步骤二、登录1panel&#xff0c;点击系统-》文件菜单&#xff0c;上传jar到一个合适的文件夹目录&#xff0c;/opt/jar 如下图&#xff1a; 步…

Jenkins+gitee 搭建自动化部署

Jenkinsgitee 搭建自动化部署 环境说明&#xff1a; 软件版本备注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好选稳定版本&#xff0c;不然安装插件有点麻烦 一、安装Jenkins程序 1、到官网下载相应的版本war或者直接使用yum安装 Jenkins官网下载 直接…

ubuntu安装VMware报错/dev/vmmon加载失败

ubuntu安装VMware报错/dev/vmmon加载失败&#xff0c;解决步骤如下&#xff1a; step1&#xff1a;为vmmon和vmnet组件生成密钥对 openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CNVMware/"ste…

LSTM 学习笔记 之pytorch调包每个参数的解释

0、 LSTM 原理 整理优秀的文章 LSTM入门例子&#xff1a;根据前9年的数据预测后3年的客流&#xff08;PyTorch实现&#xff09; [干货]深入浅出LSTM及其Python代码实现 整理视频 李毅宏手撕LSTM [双语字幕]吴恩达深度学习deeplearning.ai 1 Pytorch 代码 这里直接调用了nn.l…

细读 React | React Router 路由切换原理

2022 北京冬奥会开幕式 此前一直在疑惑&#xff0c;明明 pushState()、replaceState() 不触发 popstate 事件&#xff0c;可为什么 React Router 还能挂载对应路由的组件呢&#xff1f; 翻了一下 history.js 源码&#xff0c;终于知道原因了。 源码 假设项目路由设计如下&#…

Flutter 双屏双引擎通信插件加入 GitCode:解锁双屏开发新潜能

在双屏设备应用场景日益丰富的当下&#xff0c;移动应用开发领域迎来了新的机遇与挑战。如何高效利用双屏设备优势&#xff0c;为用户打造更优质的交互体验&#xff0c;成为开发者们关注的焦点。近日&#xff0c;一款名为 Flutter 双屏双引擎通信插件的创新项目正式入驻 GitCod…

【C++高并发服务器WebServer】-18:事件处理模式与线程池

本文目录 一、事件处理模式1.1 Reactor模式1.2 Proactor模式1.3 同步IO模拟Proactor模式 二、线程池 一、事件处理模式 服务器程序通常需要处理三类事件&#xff1a;I/O事件、信号、定时事件。 对应的有两种高效的事件处理模式&#xff1a;Reactor和Proactor&#xff0c;同步…

人岗匹配为核,打造精确高效招聘 “高速路”

人才的选拔与招聘是企业开展所有工作的前提&#xff0c;通过选聘合适的人才&#xff0c;充分发挥其能力和潜质&#xff0c;帮助企业不断完成发展目标。尤其对于初创企业&#xff0c;在人力资源与财务状况均相对紧张的背景下&#xff0c;聚焦于关键岗位的人才招聘显得尤为重要。…

网络在线考试|基于vue的网络在线考试系统的设计与实现(源码+数据库+文档)

网络在线考试系统 目录 基于SSM&#xff0b;vue的网络在线考试系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1功能页面实现 2系统功能模块 3管理员功能模块 4学生功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

vue2 导出Excel文件

1.安装依赖 npm install xlsx file-saver 2.使用 <template><button click"exportToExcel">导出Excel</button> </template><script> import * as XLSX from xlsx; import { saveAs } from file-saver; export default {methods: {ex…