搭建jenkins自动化部署

源码从svn服务器下载 

使用maven管理依赖

废话不多说直接开始

因为是使用maven打包,所以需要在pom依赖中添加打包工具

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.0.0</version>
</dependency>

下载jenkins 

因为我这里用的是2.138.2的所以这里也使用这个版本来讲解,各版本会有差异,以这个版本为主

1、将下载后的war包放到tomcat服务器下运行后,在浏览器输入地址:http://localhost:8080/jenkins/

进入第一个页面,上面要求你输入在你本地文件上的密码,然后继续

jenkins配置svn项目 jenkins配置svn自动构建_maven

2、这一步需要我们选择使用哪些插件,第一次用他推荐的就好

jenkins配置svn项目 jenkins配置svn自动构建_新版本_02

 然后jenkins会自动下载相关的插件

jenkins配置svn项目 jenkins配置svn自动构建_新版本_03

安装期间可能会因为网络原因安装失败,然后右下角会有个重试按钮,多重试几次就好了。

3、设置账户密码,你可以设置自己的账户,也可以直接使用admin账户,在这里我就用admin账户

jenkins配置svn项目 jenkins配置svn自动构建_jenkins配置svn项目_04

4、到这里,jenkins就安装完成了

jenkins配置svn项目 jenkins配置svn自动构建_svn_05

5、安装完成后先设置一下jenkins,在主页点击 -->系统管理-->全局工具配置,配置 jdk

jenkins配置svn项目 jenkins配置svn自动构建_新版本_06

 

6、maven配置,先点击新增maven

jenkins配置svn项目 jenkins配置svn自动构建_svn_07

7、配置maven的环境变量MAVEN_HOME即可 ,配置完成后点击save保存

jenkins配置svn项目 jenkins配置svn自动构建_maven_08

新建任务

jenkins配置svn项目 jenkins配置svn自动构建_svn_09

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

jenkins配置svn项目 jenkins配置svn自动构建_jenkins_10

10、选择源码管理 -->选择Subversion,在 Repository URL 输入svn地址,在Credentials 栏点击add按钮添加svn的账户

jenkins配置svn项目 jenkins配置svn自动构建_新版本_11

 

11、svn账户我们只填写 Username 和 Password 就行,其他默认就好,点击添加会自动保存退出

jenkins配置svn项目 jenkins配置svn自动构建_jenkins配置svn项目_12

12、在 Credentials

jenkins配置svn项目 jenkins配置svn自动构建_svn_13

 

12.1 在这里我们讲解下 Check-out Strategy

1、Use‘svn update’ as much as possible

第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

以后更新的时候,不会判断已有文件是否在svn里存在。比如工作目录下的文件123在svn里不存在,那么更新的时候不会删除123。

不会判断工作目录下的文件是否被改动,只会判断svn是否有新版本需要更新。比如工作目录下的文件zzz.txt内容为zzz,svn上的zzz.txt内容为空,如果svn上zzz.txt没有新版本,则在更新的时候不会更新zzz.txt,也就是说如果手动修改了工作目录下的文件,如果此文件在svn上没有出现新版本,就不会更新。一旦svn上的zzz.txt有新版本后就会更新工作目录的zzz.txt,这时工作目录下会生成如下几个文件:zzz.txt、zzz.txt.mine、zzz.txt.r223、zzz.txt.r224,其中zzz.txt.r223为svn上老版本、zzz.txt.r224为svn上新版本、zzz.txt.mine为工作目录上的zzz.txt的副本、zzz.txt记录了文件变化。

svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。但是如上例中的zzz.txt手动修改过,已经和svn上的不一样了,这时将不会被删除。

2、Alwayscheck out a fresh copy

第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

每一次更新的时候,都会先清除工作目录下的所有文件,然后重新check-out一份完整的项目到工作目录下。

3、Emulateclean checkout by first deleting unversioned/ignored files,then ‘svn update’

第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

以后更新的时候会判断工作目录下的文件是否在svn里存在,如果不存在则删除,如果存在且有新版本则更新。

会判断工作目录下的文件是否被改动,不管有没有新版本,都会还原为svn上的最新版本。

svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。

4、Use‘svn update’ as much as possible,with ‘svn revert’ before update

第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

以后更新的时候不会判断工作目录下的文件是否在svn里存在。

会判断工作目录下的文件是否被改动,不管有没有新版本,都会还原为svn上的最新版本。

svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。
 

我在这里选择 Emulate clean checkout by first deleting unversioned/ignored files, then 'svn update'

jenkins配置svn项目 jenkins配置svn自动构建_jenkins_14

13、svn信息配置好之后,现在轮到maven了,点击构建触发器-->增加构建步骤-->调用顶层maven目标

jenkins配置svn项目 jenkins配置svn自动构建_新版本_15

15、会出现maven的简单配置,我们需要点击右下角的 高级 按钮,会出现以下页面

其中,maven 版本选择我们刚刚配置的maven

目标 其实就是goals,意思是输入maven命令:clean install

POM 中输入 pom.xml

然后点击最下面的应用按钮,并且保存

jenkins配置svn项目 jenkins配置svn自动构建_新版本_16

 

这时候进入主页,就可以看到构建栏里面有一项我们刚刚创建的项目

jenkins配置svn项目 jenkins配置svn自动构建_svn_17

点击构建按钮,在控制台就可以看到打印的信息啦,

jenkins配置svn项目 jenkins配置svn自动构建_svn_18

 

构建成功后是这样的

jenkins配置svn项目 jenkins配置svn自动构建_新版本_19

那么现在还有一个问题,构建成功之后只是打包而已,jenkins自动构建是根据pom.xml文件上的 packaging 标签的打包方式进行打包的,是不会自动运行jar内容的,这时候可以这样做:

在构建列表选择一个构建项目-->点击右边小三角-->配置

jenkins配置svn项目 jenkins配置svn自动构建_jenkins配置svn项目_20

进入配置页面后,依次点击 构建环境-->增加构建步骤--> 执行windows批处理命令

jenkins配置svn项目 jenkins配置svn自动构建_maven_21

在命令栏输入以下命令

#每换一行输入一次回车

#进入d盘
d:  

#进入jar包目录
cd D:\jenkins workspaces\workspace\eurekaserver\target

#执行jar文件
java -jar eurekaserver-0.0.1-SNAPSHOT.jar

jenkins配置svn项目 jenkins配置svn自动构建_svn_22

然后点击保存,进入主页的构建列表,点击右边的构建按钮

jenkins配置svn项目 jenkins配置svn自动构建_jenkins配置svn项目_23

构建完项目之后,会自动执行windows控制台命令,运行之后,构建列表的项目进度条会一直存在,表示这个项目在一直运行中

jenkins配置svn项目 jenkins配置svn自动构建_jenkins配置svn项目_24