jenkins 参数化构建mven项目,一键部署至tomcat

上一篇记录了jenkins的安装和常用配置,包括常用的插件下载。那么这里来记录以下Jenkins的参数化构建maven项目。

环境:

centos7

jenkins2.107

maven-3.5.3

jdk-1.8_144

tomcat7


下面记录过程:

1. 上一篇讲的,先安装需要的常用插件:

Build With Parameters      ## 参数化构建需要使用到的插件
Deploy to container Plugin     ## 支持部署到java容器中
Email Extension Plugin      ## 自定义邮件插件
Git Parameter Plug-In     ## 构建时,可以选择git分支,tag等来作为构建参数
Maven Integration plugin       ## maven项目的基础插件,必须安装才能新建maven项目
Monitoring      ## jenkins自身的监控插件,可以监控资源消耗,内存,磁盘等
Persistent Parameter Plugin        ## 参数化构建插件,提供一些常用的参数类型
Publish Over SSH       ## 可以通过ssh,发送文件到远程服务器,并执行shell命令
Role-based Authorization Strategy        ## 常用的用户权限管理插件
SSH plugin      ## 可通过ssh远程执行shell命令的插件

以及一些基本常用的配置,请参考我的另一篇博文,下面不再过多赘述:

2. 新建项目,选择构建maven项目



3. 选择参数化构建,添加参数:


这里有我们安装插件后,新增的几个参数, Persistent 开头的参数与自带的插件的区别就是,Persistent参数会默认保留上一次构建成功的参数,而不是直接显示设定的默认参数。
Git Parameter 插件就更常用了,可以通过git连接,列出git的分支进行选择,然后使用指定分支代码进行构建,非常好用。
如下:



注意这里两个名称要相同,定义了参数后,使用 $参数名 的形式就可以调用参数了。除了这个,最常用的便是字符串形式的参数


这里有一个 Successful Only,勾选上时,就会保留上一次构建成功的值作为下一次构建时的参数的默认值。


4. 接下来,填入maven构建命令:


根据自己情况,自行填写。指定的pom.xml 文件一般不需要修改,这个值是相对路径,也可根据实际需求进行修改。

然后,构建构建成功后,执行操作:




这个功能就是通过ssh,讲文件发送到远程主机上,然后执行命令。就行配置:


name进行选择远程服务器,需要提前在系统设置中配置好 服务器地址,连接方式,默认路径等。
然后:
Source file 则是需要发送的文件
Remove prefix 则是需要排除的文件,类似图上的设置,则会只发送一个war包文件到远程服务器上
Remote directory 远程服务器文件路径,此路径毕竟用登陆的账号用读写权限,否则发送文件会失败

Exec command 远程执行的命令。默认是shell命令。默认不使用pty终端。
PS: 这里有几点要特别注意: 执行命令的用户为jenkins配置中设置的远程服务器登陆用户,在执行脚本之前,先将参数设为环境变量,系统环境变量也需要重新source一下
不然在脚本中,无法获取到环境变量。另外,如果要用sudo命令的话,需要使用-E参数,不重置环境变量。并且,sudo命令,默认是需要在pty终端中才能使用,可以
点击高级,勾选使用pty终端执行命令。
但是,如果使用pty终端执行,启动了tomcat后,jenkins默认在命令执行完成后,会kill 衍生进程,也就会自动kill掉tomcat的启动进程,就导致无法启动。
且,在命令行前设置: BUILD_ID=DONTKILLME 也没用,需要修改jenkins启动参数。这里我没有使用这种办法。
还有一种办法:修改visudo ,取消掉默认的需要pty终端才能执行sudo的配置,使用root命令,执行:visudo,如下:

将这一行注释掉即可。这样就不需要pty终端使用sudo命令了。这样在jenkins的配置中就不需要勾选使用pty了。也就不会杀死衍生进程了。

这样,就能正常执行你项目的启动脚本(我这里是python脚本)。


5. 然后构建后操作,可以增加一个邮件发送操作,将构建的结果发送到自己邮箱:


选择这个邮件插件提供的操作,在发送列表里,可以写任意多个邮箱地址,逗号隔开,这样在构建完成后,即可发送邮件。告知构建结果。邮箱的配置,在上一篇里记录过。


OK,到此,就完成了maven项目的参数化构建,一键部署。这也是最常用的功能。

有什么疑问,欢迎提问,见必答


猜你喜欢

转载自blog.csdn.net/weixin_41004350/article/details/80023721
今日推荐