【Jenkins 构建maven工程打成jar包并执行】#Jenkins 构建maven工程打成jar包并运行
- 0x00 前言
继续上午的坑爹部署后,打算将需要执行的jar包用Jenkins构建并运行。
- 0x01 思路
- 使用maven的maven-shade-plugin插件,把maven项目的各种依赖jar包统统打包,生成.jar文件。
- 通过Jenkins持续集成构建项目。
- 停止之前运行的jar包。
- Jenkins构建后生成的jar包替换掉到我指定的文件夹中的旧的jar包。
- 运行jar包。
在pom.xml中添加如下配置
org.apache.maven.plugins
maven-shade-plugin
2.4.1
false
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
com.tooldin.main.ActiveMQMain
META-INF/spring.handlers
META-INF/spring.schemas
**- 0x03 配置Jenkins** [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-82MSlwnj-1591435733621)(https://img-blog.csdn.net/20170727191118935?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVyMF9v/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)] 选择构建一个自由风格的软件项目就好,什么Subversion啊,这些根据需求自己设置,主要是构建步骤。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5WVcpRwk-1591435733622)(https://img-blog.csdn.net/20170727191803865?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVyMF9v/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)] 首先是Invoke top-level Maven targets
其次是Execute Shell,我这服务器用的ubuntu,所以Execute Shell
Command部分
#!/bin/bash
cd /home/deploy-mq/
./stop.sh
./replace.sh
echo "Execute shell Finish"
BUILD_ID=dontKillMe nohup /home/deploy-mq/startup.sh &
这里需要三个文件,分别是 stop.sh, replace.sh, startup.sh
放在/home/deploy-mq目录中
stop.sh
echo "Stopping tooldin-mq"
pid=`ps -ef | grep tooldin-mq.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
**replace.sh** ``` cp /var/lib/jenkins/workspace/tooldin-mq/target/tooldin-mq.jar /home/deploy-mq ```
**startup.sh**
java -jar /home/deploy-mq/tooldin-mq.jar
**-0x04 结束** 经过一细节的配置, 再尝试构建, Jenkins输出了 Finished: SUCCESS, 并亮起了小太阳, 鸡冻。自此,maven工程就打成jar包,通过Jenkins构建并部署执行就成功啦! ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200606172905312.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3plcjBfbw==,size_16,color_FFFFFF,t_70#pic_center)
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)