Jenkins插件开发
2019-01-04 本文已影响0人
莫问君心
最近要开发一个Jenkins的插件,碰着不少坑,趁着映像还深记录下来。
也可以作为小白入门参考。
安装基本参考Jenkins官方文档来做的
环境准备:
- Maven 3.x(命令行执行
mvn -v
可看到版本) - JDK 1.8
- IDEA/Eclipse
Maven配置
修改settings.xml文件,分别添加以下三处配置:
<pluginGroups>
<pluginGroup>org.jenkins-ci.tools</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>jenkins</id>
<activation>
<activeByDefault>true</activeByDefault>
</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>
创建插件项目
选择以下两条maven命令中的一条生成Jenkins插件代码,过程中会提示你选择archtype及其版本信息等。
小白选手请选择生成hello-world-plugin,以便于理解如何玩转插件开发。
#生成helloworld插件
mvn archetype:generate -Dfilter=io.jenkins.archetypes:hello-world-plugin
#生成空插件项目
mvn archetype:generate -Dfilter=io.jenkins.archetypes:empty-plugin
注意:执行该命令可能会得到以下结果,并不出现提示交互,也不会生成maven项目。
[INFO] Generating project in Interactive mode [WARNING] No archetype found in remote catalog. Defaulting to internal catalog [INFO] Your filter doesn't match any archetype, so try again with another value. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 26.228 s [INFO] Finished at: 2018-12-11T16:01:32+08:00 [INFO] ------------------------------------------------------------------------
这是因为maven在本地仓库根目录
archetype-catalog.xml
文件中没找到groupId为io.jenkins.archetypes
的archetype,之后会在远端仓库的该文件中查找,如果还是没找到则出现上述问题。解决方法:将
archetype-catalog.xml
文件下载到本地Maven仓库根目录即可,获取地址:
http://repo1.maven.org/maven2/archetype-catalog.xml
如果添加后,archetype-catalog.xml文件并未生效,可以在Maven的命令参数中指定该文件,命令示例:mvn archetype:generate -Dfilter=io.jenkins.archetypes: -DarchetypeCatalog=file:///D:/repository/archetype-catalog.xml
之后即可进入刚刚生成的项目目录,执行打包。
mvn package