最新的构建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: unusedY: : 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.szaY: : 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插件的架构。

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SDKMAN! 的英文全称是 Software Development Kit Manager(软件开发工具包管理器)

文章目录 SDKMAN! 的核心功能SDKMAN! 的常用命令SDKMAN! 的优势总结 SDKMAN! 的英文全称是 Software Development Kit Manager。它是一个用于管理多个软件开发工具&#xff08;如 Java、Groovy、Scala、Kotlin 等&#xff09;版本的工具。SDKMAN! 提供了一个简单的方式来安装、…

Python实现GO鹅优化算法优化支持向量机SVM分类模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 随着信息技术的迅猛发展&#xff0c;数据量呈爆炸式增长&#xff0c;如何从海量的数据中提取有价值…

网络安全工程师逆元计算 网络安全逆向

中职逆向题目整理合集 逆向分析&#xff1a;PE01.exe算法破解&#xff1a;flag0072算法破解&#xff1a;flag0073算法破解&#xff1a;CrackMe.exe远程代码执行渗透测试天津逆向re1 re22023江苏省re12023年江苏省赛re2_easygo.exe2022天津市PWN 逆向分析&#xff1a;PE01.exe …

Mysql 函数解析

文章目录 一、模糊匹配【like】二、CASE函数1、简单case2、搜索case3、搜索case 聚合函数 三、日期函数四、字符串处理 一、模糊匹配【like】 一般形式为&#xff1a;列名 [NOT] LIKE ‘%关键字%’&#xff0c;示例如下&#xff1a; like %北京%列名包括北京的字样like ‘北…

C# OpenCV机器视觉:SoftNMS非极大值抑制

嘿&#xff0c;你知道吗&#xff1f;阿强最近可忙啦&#xff01;他正在处理一个超级棘手的问题呢&#xff0c;就好像在一个混乱的战场里&#xff0c;到处都是乱糟糟的候选框&#xff0c;这些候选框就像一群调皮的小精灵&#xff0c;有的重叠在一起&#xff0c;让阿强头疼不已。…

2025届优秀大数据毕业设计

【2025计算机毕业设计】计算机毕业设计100个高通过率选题推荐&#xff0c;毕业生毕设必看选题指导&#xff0c;计算机毕业设计选题讲解&#xff0c;毕业设计选题详细指导_哔哩哔哩_bilibili 985华南理工大学学长 大厂全栈&#xff0c;大数据开发工程师 专注定制化开发

Visual Studio 进行单元测试【入门】

摘要&#xff1a;在软件开发中&#xff0c;单元测试是一种重要的实践&#xff0c;通过验证代码的正确性&#xff0c;帮助开发者提高代码质量。本文将介绍如何在VisualStudio中进行单元测试&#xff0c;包括创建测试项目、编写测试代码、运行测试以及查看结果。 1. 什么是单元测…

最新消息 | 德思特荣获中国创新创业大赛暨广州科技创新创业大赛三等奖!

2024年12月30日&#xff0c;广州市科技局公开第十三届中国创新创业大赛&#xff08;广东广州赛区&#xff09;暨2024年广州科技创新创业大赛决赛成绩及拟获奖企业名单&#xff0c;德思特获得了智能与新能源汽车初创组【第六名】【三等奖】的好成绩&#xff01; 关于德思特&…

DeepSeek模型架构及优化内容

DeepSeek v1版本 模型结构 DeepSeek LLM基本上遵循LLaMA的设计&#xff1a; 采⽤Pre-Norm结构&#xff0c;并使⽤RMSNorm函数. 利⽤SwiGLU作为Feed-Forward Network&#xff08;FFN&#xff09;的激活函数&#xff0c;中间层维度为8/3. 去除绝对位置编码&#xff0c;采⽤了…

内网ip网段记录

1.介绍 常见的内网IP段有&#xff1a; A类&#xff1a; 10.0.0.0/8 大型企业内部网络&#xff08;如 AWS、阿里云&#xff09; 10.0.0.0 - 10.255.255.255 B类&#xff1a;172.16.0.0/12 中型企业、学校 172.16.0.0 - 172.31.255.255 C类&#xff1a;192.168.0.0/16 家庭…

【图片合并转换PDF】如何将每个文件夹下的图片转化成PDF并合并成一个文件?下面基于C++的方式教你实现

医院在为患者进行诊断和治疗过程中&#xff0c;会产生大量的医学影像图片&#xff0c;如 X 光片、CT 扫描图、MRI 图像等。这些图片通常会按照检查时间或者检查项目存放在不同的文件夹中。为了方便医生查阅和患者病历的长期保存&#xff0c;需要将每个患者文件夹下的图片合并成…

香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。

简介&#xff1a; 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas&#xff0c;这是一种简化的视频合成系统&#xff0c;用于电影镜头设计&#xff0c;提供整体运动控制&#xff0c;以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…

129,【2】buuctf [BJDCTF2020]EzPHP

进入靶场 查看源代码 看到红框就知道对了 她下面那句话是编码后的&#xff0c;解码 1nD3x.php <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;通常用于调试和展示代码结构 highlight_file(__FILE__); // 设置错误报告级别为 0&#xff0c;即不显示任何 PHP 错误信息…

MapReduce到底是个啥?

在聊 MapReduce 之前不妨先看个例子&#xff1a;假设某短视频平台日活用户大约在7000万左右&#xff0c;若平均每一个用户产生3条行为日志&#xff1a;点赞、转发、收藏&#xff1b;这样就是两亿条行为日志&#xff0c;再假设每条日志大小为100个字节&#xff0c;那么一天就会产…

LeetCode --- 435周赛

题目列表 3442. 奇偶频次间的最大差值 I 3443. K 次修改后的最大曼哈顿距离 3444. 使数组包含目标值倍数的最少增量 3445. 奇偶频次间的最大差值 II 一、奇偶频次间的最大差值I 统计字母出现次数&#xff0c;然后分别统计出现偶数次的最小值和出现奇数次的最大值&#xff0c;…

chrome-mojo C++ Bindings API

概述 Mojo C 绑定 API 利用C 系统 API提供一组更自然的原语&#xff0c;用于通过 Mojo 消息管道进行通信。结合从Mojom IDL 和绑定生成器生成的代码&#xff0c;用户可以轻松地跨任意进程内和进程间边界连接接口客户端和实现。 本文档通过示例代码片段提供了绑定 API 用法的详…

目标检测数据集合集(持续更新中)

第1期 高压输电线塔鸟巢数据集 第2期 特种工程车辆检测数据集 第3期 金桔目标检测数据集 第4期 金属锈蚀识别检测数据集 第5期 苦瓜目标检测数据集 第6期 石榴目标检测数据集YOLO格式 第7期 光伏电池板缺陷检测数据集YOLO格式 第8期 铁路轨道异物入侵检测数据集YOLO格式…

活动预告 | 为 AI 新纪元做好准备:助力安全的业务转型

课程介绍 随着现代办公模式的不断演变和 AI 技术的迅速发展&#xff0c;企业在享受效率提升的同时&#xff0c;也面临着信息安全与数据保护的严峻挑战。在利用 AI 技术释放业务潜力的同时&#xff0c;如何确保数据质量与安全已成为企业发展的关键议题。 在本次线上课程中&…

语义分割文献阅读——SETR:使用Transformer从序列到序列的角度重新思考语义分割

目录 摘要 Abstract 1 引言 2 Vision Transformer(ViT) 2.1 图片预处理&#xff1a;分块和降维 2.2 Patch Embedding 2.3 位置编码 2.4 Transformer Encoder的前向过程 3 SETR 3.1 图像序列化处理 3.2 Transformer 3.3 解码器 总结 摘要 本周阅读的论文题目是《R…

深度学习入门--python入门1

以前学的python全部还给老师了&#xff0c;所以现在重新开始学习了。目标是每天至少学习一点点吧。 目录 1.1 python是什么 1.2 python安装 1.3 python解释器 1.3.1 算术计算 1.3.2 数据类型 1.3.3 变量 1.3.4 列表&#xff08;数组&#xff09; 1.3.5 字典 1.3.6 布…