开始创建一个新的插件,可以使用IDE或者你想更舒适的使用Maven,可以运行以下命令:
$ mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create
也可以直接短的前缀:
$ mvn -U hpi:create
执行完之后会提示输入groupId和artifactid,如下图所示:
如果看到以下提示信息就说明插件创建成功,如下图所示:
通过以下命令对新建的插件进行打包:
$ cd uploadApkToBugly
$ mvn package
打包生成之后会生成一个target目录:
解析:
-U 表示Maven会更新所有相关的插件(检查插件的更新)
hpi:这个前缀表示Jenkins HPI插件被调用,一个支持Jenkins插件开发的插件
create 表示创建布局目录和新插件的pom.xml文件并且添加它到模块列表
package是一个标准的阶段编译所有资源,运行测试和创建一个包-当使用hpi插件时会创建一个*.hpi文件
构建一个插件
构建一个插件,运行mvn install
。这个会创建文件./target/pluginname.hpi,可以让你发布到Jenkins。
$ mvn install
为IDE设置开发环境
这里我选择的是Eclipse,建议使用Eclipse Juno(4.2或以上)。
$ mvn -DdownloadSources=true -DdownloadJavadocs=true -DoutputDirectory=target/eclipse-classes -Declipse.workspace=/path/to/workspace eclipse:eclipse eclipse:configure-workspace
或
mvn eclipse:eclipse
命令执行成功之后,打开Eclipse使用”import…”然后选择”General” > “Existing Projects into Workspace”。
插件工作区布局
插件工作空间包含以下主要包含以下几个部分:
pom.xml
Maven使用它构建你的插件,所有Jenkins插件都基于父插件:
org.jenkins-ci.plugins
plugin
2.2
如果使用提供的原型创建项目,一切都已经设置好。截至Jenkins 1.645版本插件父POM是主的Jenkins项目的一部分并且POM版本是Jenkins版本的基准被用于插件。
当使用父POM版本2.2或者更高版本,该基准版本选择使用jenkins.version属性,例如:
org.jenkins-ci.plugins
plugin
2.2
src/main/java
存放插件的java源代码
src/main/resources
Jelly/Groovy 视图文件
src/mian/webapp
静态资源文件,例如图片,HTML文件。
调试插件
====
Unix:
$ export MAVEN_OPTS=“-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n”
$ mvn hpi:run
windows:
set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n
mvn hpi:run
如果你在浏览器打开http://localhost:8080/jenkins ,你会看见Jenkins页面在Jetty中运行。MAVEN_OPTS选项启动端口为8000的调试器,所以你应该能够从IDE在这个端口启动一个调试会话。
一旦开始运行,就保持运行。Jetty会自动拉取所有的变化。
1. 当你让视图发生变化在src/main/resources或者资源文件在src/main/webapp,只要在浏览器按F5就可以看到这些变化。
2. 当你改变Java源文件,在你的IDE编译它们和Jetty会自动重新部署Jenkins去拉取这些变化。这里没有必要运行一直运行mvn命令。
更改端口
如果你需要在不同的端口不是8080启动Jenkins,通过系统属性设置jetty.port端口。
$ mvn hpi:run -Djetty.port=8090
设置上下文路径
$ mvn hpi:run -Dhpi.prefix=/jenkins
maven-hpi-plugin 1.65或更高版本(由父POM 1.401或更高版本使用)可以通过使用系统属性设置上下文路径。在较新版本的Jenkins会自动添加”/jenkins”前缀。
当调试时改变代码
根据你改变什么,你可以看到它运行的实例无需重新启动整个Maven进程:
- Views:Groovy/Jelly 视图每次请求一个页面会被重新编译,所以只刷新浏览器页面,你就会看到变化。这个对你写的帮助文件也是如此。
- Java Code:如果你在调试,JVM的热插拔功能可以用来重新加载代码,只要你没有动过方法签名。除此之外,你可以在Maven进程中按Enter键然后它会重新加载Jenkins的Web应用。请参阅Developing with JRebel会告诉你如何获得JRebel的OSS项目的许可证去帮助你提高这个方面的经验。
- POM:如果你更改了POM,你就需要停止并重新启动Maven才能看到变化。
发布一个插件
要创建插件的发布镜像,运行一下的Maven命令:
$ mvn package
最后
总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。
这里我为大家准备了一些我在面试后整理的面试专题资料,除了面试题,还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
毕竟不管遇到什么样的面试官,去面试首先最主要的就是自己的实力,只要实力够硬,技术够强,就不怕面试拿不到offer!
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
[外链图片转存中…(img-5YZIn2tN-1715835606238)]
[外链图片转存中…(img-IBTs3z7B-1715835606240)]
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
[外链图片转存中…(img-APu5woXW-1715835606241)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!