赞
踩
- 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中添加如下配置
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>2.4.1</version>
- <configuration>
- <createDependencyReducedPom>false</createDependencyReducedPom>
- </configuration>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <filters>
- <filter>
- <artifact>*:*</artifact>
- <excludes>
- <exclude>META-INF/*.SF</exclude>
- <exclude>META-INF/*.DSA</exclude>
- <exclude>META-INF/*.RSA</exclude>
- </excludes>
- </filter>
- </filters>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>com.tooldin.main.ActiveMQMain</mainClass>
- </transformer>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/spring.handlers</resource>
- </transformer>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/spring.schemas</resource>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- 0x03 配置Jenkins
选择构建一个自由风格的软件项目就好,什么Subversion啊,这些根据需求自己设置,主要是构建步骤。
首先是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构建并部署执行就成功啦!
-0x05 常见问题
如果在执行sh脚本时出现promission denied 是因为jenkins 执行权限不够
- # 打开配置文件
- vim /etc/sysconfig/jenkins
- # 修改用户为root
- JENKINS_USER="root" #该行涉及到jenkins 执行sh脚本时的权限问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。