Jenkins+SVN+Maven实现自动打包Jar/War并发布

简介: 一.背景由于部门想要搭建一套Svn+Jenkins的持续集成环境,Jenkins的部署是由部门的运维同事负责的,我则负责Jenkins任务的创建。部署Jenkins并创建用户(这里忽略这个步骤,不讲解)Jenkins部署完成后,使用管理员账户登录Jenkins1.png点击系统管理->全局工具配置->下滑找到Maven,点击Maven 安装->配置Maven7.jpgimage.png第一个为配置当前Jenkins所在服务器环境自身Maven。

一.背景

由于部门想要搭建一套Svn+Jenkins的持续集成环境,Jenkins的部署是由部门的运维同事负责的,我则负责Jenkins任务的创建。


  1. 部署Jenkins并创建用户(这里忽略这个步骤,不讲解)

  2. Jenkins部署完成后,使用管理员账户登录Jenkins
    img_34c2b4d05268ae96591b50664f4ba6e6.png
    1.png
  3. 点击系统管理->全局工具配置->下滑找到Maven,点击Maven 安装->配置Maven

    img_fb7b90abb20dd3bc569f34688580ffb8.jpe
    7.jpg

    img_962d2478cb4515098af9420cb856dc5f.png
    image.png

    第一个为配置当前Jenkins所在服务器环境自身Maven。第二个为由Jenkins自动配置Maven,这种方式只需要配置好名次及Maven版本就可以。配置完成后点击Save保存即可生效。

  4. 点击左上角新建任务开始创建任务(分两种情况)

a. 项目不依赖于其他项目

a1. 输入项目名称,选择构建一个自由风格的软件项目,然后点确定。

img_fdc20c10256dbf440891a748fbb89d5a.png
image.png

a2 .在General部分,勾选丢弃旧的构建,并设置保持构建的天数以及保存构建的最大个数,
描述部分可选择性填写。

img_76d9783ef6ab686a481b912580df956d.png
image.png

a3 .在源代码管理部分,选中 Subversion,然后填写 SVN路径认证信息,如果尚未添加过SVN认证信息则点击Add新增Credentials,新增成功后,其他任务也可以使用此信息。
img_ab064a53fee90247b28d3908d24bceae.png
image.png

a4. 在构建触发器部分,选中定时构建可添加定时执行计划。

img_2929733aeb132af8dedd79d30308cdf7.png
image.png

a5. 在构建环境部分,选中Delete workspace before build starts

img_31febc2aa457bd76cdd66ff1445bcc75.png
image.png

a6. 在构建部分,点击增加构建步骤,选择调用顶层Maven目标

img_cd723817628adec0f7b837dad7c593b3.png
image.png

Maven版本选择我们之前所配置的Maven,目标填写需要执行的Maven命令
img_28d4a8e98d3d96b3407275f14ac1360a.png
image.png

a7. 点击保存,然后点击立即构建,并进入构建具体信息中即可查看控制台详细信息。
img_23ac18ac0892be0e8304c200cace0480.png
image.png

a8. 如果需要在打包完成后做后续操作例如进行发布等操作,则再添加构建步骤如下(我是发布到Jenkins所在服务器也就是本地)

发布Jar

在构建部分,点击增减构建步骤并选择执行shell,shell如下

echo "备份原有jar包"
cd /usr/local/i2work/target
mv i2work-reward.jar i2work-reward.jar_bak$(date +%Y%m%d%H%M)
echo "复制Jar到目标文件夹"
cd ${WORKSPACE}/target/
cp i2work-reward.jar /usr/local/i2work/target
sh /opt/scripts/i2work-stat.sh reward
发布War(本地Tomcat)

在构建部分,点击增减构建步骤并选择执行shell,shell如下:

echo "进入工作空间"
cd /root/.jenkins/workspace/i2work-operation/target/
echo "修改war包名称"
mv i2work-operation-1.0-SNAPSHOT.war operation.war
echo "进入tomcat目录并备份原文件"
cd /usr/local/i2work/apache-tomcat-8.5.4-operation/webapps
mv operation.war operation_bak$(date +%Y%m%d%H%M).tar.gz
echo "进入工作空间并复制war到tomcat中"
cd /root/.jenkins/workspace/i2work-operation/target
cp operation.war /usr/local/i2work/apache-tomcat-8.5.4-operation/webapps
echo "重启tomcat"
sh -x /opt/scripts/operation_restart.sh

b. 项目依赖于其他项目,比如在我的项目中,项目A依赖于父项目Core,而Core又依赖于Parent(工作流,B必须在A执行后执行,A->B->C)。

此类型过程与上一类型过程大致相同,故在此只着重讲解差异地方。

b1. 添加Multijob plugin插件,Jenkins如何安装插件这里就不在介绍。

b2.新增任务:输入项目名称,选择MultiJob Project,然后点确定。

img_3f885368ac9d48fcdff5a8c2d02120c3.png
image.png

b3. General部分,同a2

b4. 源代码管理部分,同a3

b5. 构建触发器部分,同a4

b6. 构建环境部分,同a5

b7. 构建部分,点击增加构建步骤,选择MultiJob Phase

img_f07f5410af63f965555295cf44dbff73.png
image.png

b8. 设置构建前置任务,JobName框中输入需要在当前任务执行前执行的任务,比如test任务必须在test-MultiJob前执行,则填写test。test任务必须已经存在。继续点击add jobs可增加更多前置任务,前置任务按顺序执行,即A->B->C顺序执行。
img_74dbe75a0b5d6270775751595c3e7b79.png
image.png

b9. 构建部分,设置当前任务执行步骤,同a6

剩余所有步骤均与第一种方式相同。

总结

  1. 第一种任务类型与第二种任务类型之间最大的差距在于,第一种是独立的任务,而第二种则是类似于工作流的形式。
  2. 第一种任务与第二种任务构建步骤间最大的差距在于,第一种是选择构建一个自由风格的软件项目类型;而第二种则是通过安装Multijob plugin插件来选择MultiJob Project类型,并在构建部分选择MultiJob Phase
    以控制任务的执行顺序以实现A->B->C的构建顺序。
相关文章
|
3月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
3月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
25天前
|
jenkins Java 持续交付
Jenkins打包,发布,部署
Jenkins打包,发布,部署
165 0
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
3月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
3月前
|
Java Maven Windows
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
50 0
|
3月前
|
Java Maven
SpringBoot 引用仓库中没有 第三方包 - 将jar 包安装本地 maven
SpringBoot 引用仓库中没有 第三方包 - 将jar 包安装本地 maven
30 0
|
4月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
124 0
|
4月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
431 2
[JarEditor]可直接修改jar包的IDEA插件

推荐镜像

更多