Jenkins 构建maven工程打成jar包并执行

来源:互联网 发布:静安区人民法院知询 编辑:程序博客网 时间:2024/05/29 05:55

Jenkins 构建maven工程打成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中添加如下配置

<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/bashcd /home/deploy-mq/./stop.sh./replace.shecho "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 $pidfi



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构建并部署执行就成功啦!

原创粉丝点击