创建一个插件
在准备环境后, 接下来是创建一个新的插件。
如果您的目的是在 Jenkins 更新站点上发布您的插件,应该先看看是否已经有类似的插件。参考 wiki page 了解更多信息。 |
使用示例插件原型创建项目结构
打开命令提示符,找到您想要存储新 Jenkins 插件的目录,然后运行以下命令:
mvn -U archetype:generate -Dfilter=io.jenkins.archetypes:
这个命令将生成与 Jenkins 有关的几个项目原型中的一个。在本教程中,我们将使用 hello-world
原型,版本 1.4,所以选择:
$ mvn -U archetype:generate -Dfilter=io.jenkins.archetypes:
…
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:global-shared-library (Uses the Jenkins Pipeline Unit mock library to test the usage of a Global Shared Library)
4: remote -> io.jenkins.archetypes:hello-world-plugin (Skeleton of a Jenkins plugin with a POM and an example build step.)
5: remote -> io.jenkins.archetypes:scripted-pipeline (Uses the Jenkins Pipeline Unit mock library to test the logic inside a Pipeline script.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 4 (1)
Choose io.jenkins.archetypes:hello-world-plugin version:
1: 1.1
2: 1.2
3: 1.3
4: 1.4
Choose a number: 4: 4 (2)
[INFO] Using property: groupId = unused
Define value for property artifactId: demo (3)
Define value for property version 1.0-SNAPSHOT: : (4)
[INFO] Using property: package = io.jenkins.plugins.sample
Confirm properties configuration:
groupId: unused
artifactId: demo
version: 1.0-SNAPSHOT
package: io.jenkins.plugins.sample
Y: : y (5)
1 | 输入 hello-world-plugin 原型的编号, 在该案例中是 4 。 |
2 | 本教程是基于 hello-world-plugin 原型的1.4版本, 所以输入 4 选择它 。 |
3 | 它在 Jenkins 中且唯一标识您的插件。这个插件教程使用名称 demo 。如果你想发布你的插件,请确保名称尚未被采用,并且你选择的名称是面向未来的。在发布第一个版本后,不能更改 artifactId 。 请 不要 在这个 ID 中使用单词 jenkins 或 plugin —— 只有描述 Jenkins 插件的文字。 |
4 | 这里不需要选择不同的版本号。这里是 1.0 版本的开发版本 (通过 SNAPSHOT 表示)。了解 Maven 版本号 |
5 | 在你输入所有值之后,Maven 会再次显示它们。查看并确认您的选择。 |
这会创建一个与插件的 artifactId
的名称相同的目录(该例中为 demo
),然后添加了工作插件的基本结构。让我们看一下我们能否构建插件:
- $ mv demo demo-plugin (1)
- $ cd demo-plugin
- $ mvn verify
1 | Maven 在一个目录中创建了与您为插件选择的名称相同的项目结构。我们将重命名该目录以匹配 GitHub 组织 @jenkinsci 中使用的常规存储库名称。 |
Maven 将下载更多的依赖项,然后遍历配置的构建周期,包括静态分析(FindBugs)和测试,直到它显示像下面的文字:
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 01:24 min
- [INFO] Finished at: 2018-11-19T20:48:40+08:00
- [INFO] Final Memory: 73M/872M
- [INFO] ------------------------------------------------------------------------
要详细了解插件构建中涉及的内容,请参阅 Plugin 构建过程。 |
不是你看到的输出? 查看下面的 故障排除 部分。
让我们 运行插件 并查看它能做什么。
故障排除
没有适合你的东西? 在 chat 或 jenkinsci-dev 邮件列表中寻求帮助。 |