maven 设置打包路径为模块_4、Jenkins持续集成之maven编译

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:07   1627   0

简介

    Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。现在公司的开发都是使用Git管理代码,Maven管理多模块和项目依赖。Jenkins支持两种工程:FreeStyle工程和Maven工程。如果代码是用Maven构造的,可以直接建立Maven工程。

Maven工程配置

新建一个Maven工程后,需要设置以下条目:    1、设置git代码的下载路径    2、设置自动构造的日期    3、设置pom文件的路径    4、设置mvn命令的参数    5、设置post-build的动作

Jenkins插件

菜单路径:系统管理—管理Jenkins—管理插件。    安装以下插件:        1、Maven Integration plugin        2、Subversion Plugin        3、Checkstyle Plugin        4、Findbugs Plugin        5、PMD Plugin        6、Warnings Plugin        7、Maven Info Plugin        8、Maven Repository Scheduled Cleanup Plugin        9、Unleash Maven Plugin        10、Maven Invoker plugin

实例:配置jenkins支持maven自动编译

新建一个GIT仓库用于存放我们的JAVA代码

161953a8a834eb5b527d22ae5555a054.png

克隆到本地

[jenkins@node1 ~]$ git clone git@github.com:caichangen/maven.git

提交一份代码(此处我找到一份maven编译的代码)

[jenkins@node1 ~]$ tar xf backend.tar.gz[jenkins@node1 ~]$ mv backend/* maven/[jenkins@node1 ~]$ cd maven/[jenkins@node1 maven]$ git add ./*[jenkins@node1 maven]$ git commit -m 'commit java'[jenkins@node1 maven]$ git push -u origin master

查看

e62b3cb3ac2cf1317be079c9f870d596.png

在node1上配置的maven

[jenkins@node1 ~]$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz[root@node1 jenkins]# tar xf apache-maven-3.3.9-bin.tar.gz -C /usr/local/[root@node1 jenkins]# cd /usr/local/[root@node1 local]# ln -sv apache-maven-3.3.9/ maven[root@node1 ~]# [root@node1 ~]# tail -6 /etc/profileexport JAVA_HOME=/usr/java/jdk1.8.0_112export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/*export PATH=$PATH:$JAVA_HOME/binexport M2_HOME=/usr/local/mavenexport M2=$M2_HOME/binexport PATH=$M2:$PATH[root@node1 ~]# source /etc/profile[jenkins@node1 ~]$ mvn -vApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)Maven home: /usr/local/mavenJava version: 1.8.0_112, vendor: Oracle CorporationJava home: /usr/java/jdk1.8.0_112/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"

配置jenkins设置中的maven和jdk环境

a7e52f4d58d4316d25119f24a64b07d9.png

配置JDK

20ddb3d0a0846bf3d125679b3689e2b2.png

配置maven

fba7d312bd5c8d0e29e0af1cae0ab210.png

创建一个maven项目

72eb295a3730ec6a5a3e2bcb908d3c3a.png

填入git仓库地址

e5fc02e0a3a9230b4681538181ea6a20.png

配置pom.xml

c14b4e6c4d043451afae6c6c73bdb285.png

build测试是否会进行打包

198eb7e0fb6653c4a54f8c0f54b6ca09.png

查看我们生成的war包(第一次需要下载一些jar包,所以时间会比较久)

cc863271b5e7b0116118e7ccaa3eb7cf.png

注意

打包完成,此后我们就可以使用之前的方式来做代码分发到tomcat网站根目录了,因为java代码每次分发都需要重启tomcat,所以在此处需要注意的是,我们使用ansible去重启tomcat的时候需要用到nohup参数,可能是ansible不支持长连接的原因,如果不使用nohup参数的话会出现无法启动的原因(亲测)在很多情况下,当我们的jenkins打包java程序的时候,会出现各种意想不到的情况大多部分都是因为缺少某某包而造成的,其实当我们有jenkins/java的环境下,我们可以自建nexus仓库,然后将改仓库加入到我们的项目开发的过程中,开发人员每次提交代码的时候先要将独立开发的工具类上传到我们的nexus,这样就可以完美避免这类问题的发生,当有了这个环境之后,jenkins开始构建的首先会在公共仓库里面去下载代码中需要的jar包,当公共仓库找不到的时候,此时会自己去我们的私有仓库里面去寻找;
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP