当前位置:   article > 正文

Jenkins 构建maven工程打成jar包并运行_jenkins构建完成后继续运行jar包

jenkins构建完成后继续运行jar包

- 0x00 前言 
继续上午的坑爹部署后,打算将需要执行的jar包用Jenkins构建并运行。

- 0x01 思路 
1. 使用maven的maven-shade-plugin插件,把maven项目的各种依赖jar包统统打包,生成.jar文件。 
2. 通过Jenkins持续集成构建项目。 
3. 停止之前运行的jar包。 
4. Jenkins构建后生成的jar包替换掉到我指定的文件夹中的旧的jar包。 
5. 运行jar包。

- 0x02 maven打包插件 
在pom.xml中添加如下配置

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-shade-plugin</artifactId>
  4. <version>2.4.1</version>
  5. <configuration>
  6. <createDependencyReducedPom>false</createDependencyReducedPom>
  7. </configuration>
  8. <executions>
  9. <execution>
  10. <phase>package</phase>
  11. <goals>
  12. <goal>shade</goal>
  13. </goals>
  14. <configuration>
  15. <filters>
  16. <filter>
  17. <artifact>*:*</artifact>
  18. <excludes>
  19. <exclude>META-INF/*.SF</exclude>
  20. <exclude>META-INF/*.DSA</exclude>
  21. <exclude>META-INF/*.RSA</exclude>
  22. </excludes>
  23. </filter>
  24. </filters>
  25. <transformers>
  26. <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  27. <mainClass>com.tooldin.main.ActiveMQMain</mainClass>
  28. </transformer>
  29. <transformer
  30. implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  31. <resource>META-INF/spring.handlers</resource>
  32. </transformer>
  33. <transformer
  34. implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  35. <resource>META-INF/spring.schemas</resource>
  36. </transformer>
  37. </transformers>
  38. </configuration>
  39. </execution>
  40. </executions>
  41. </plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41



- 0x03 配置Jenkins 
这里写图片描述
选择构建一个自由风格的软件项目就好,什么Subversion啊,这些根据需求自己设置,主要是构建步骤。 


这里写图片描述

首先是Invoke top-level Maven targets 
其次是Execute Shell,我这服务器用的ubuntu,所以Execute Shell 


Command部分

  1. #!/bin/bash
  2. cd /home/deploy-mq/
  3. ./stop.sh
  4. ./replace.sh
  5. echo "Execute shell Finish"
  6. BUILD_ID=dontKillMe nohup /home/deploy-mq/startup.sh &
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这里需要三个文件,分别是 stop.sh, replace.sh, startup.sh 
放在/home/deploy-mq目录中 


stop.sh

  1. echo "Stopping tooldin-mq"
  2. pid=`ps -ef | grep tooldin-mq.jar | grep -v grep | awk '{print $2}'`
  3. if [ -n "$pid" ]
  4. then
  5. echo "kill -9 的pid:" $pid
  6. kill -9 $pid
  7. fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7



replace.sh

cp /var/lib/jenkins/workspace/tooldin-mq/target/tooldin-mq.jar /home/deploy-mq
  • 1



startup.sh

java -jar /home/deploy-mq/tooldin-mq.jar
  • 1



-0x04 结束 

经过一细节的配置, 再尝试构建, Jenkins输出了 Finished: SUCCESS, 并亮起了小太阳, 鸡冻。自此,maven工程就打成jar包,通过Jenkins构建并部署执行就成功啦!


-0x05 常见问题

如果在执行sh脚本时出现promission denied  是因为jenkins 执行权限不够

  • 配置文件/etc/sysconfig/jenkins
  1. # 打开配置文件
  2. vim /etc/sysconfig/jenkins
  3. # 修改用户为root
  4. JENKINS_USER="root" #该行涉及到jenkins 执行sh脚本时的权限问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/550994
推荐阅读
相关标签
  

闽ICP备14008679号