搭建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/
进入第一个页面,上面要求你输入在你本地文件上的密码,然后继续
2、这一步需要我们选择使用哪些插件,第一次用他推荐的就好
然后jenkins会自动下载相关的插件
安装期间可能会因为网络原因安装失败,然后右下角会有个重试按钮,多重试几次就好了。
3、设置账户密码,你可以设置自己的账户,也可以直接使用admin账户,在这里我就用admin账户
4、到这里,jenkins就安装完成了
5、安装完成后先设置一下jenkins,在主页点击 -->系统管理-->全局工具配置,配置 jdk
6、maven配置,先点击新增maven
7、配置maven的环境变量MAVEN_HOME即可 ,配置完成后点击save保存
新建任务
9、输入构建名称,选择 构建一个自由风格的软件项目 ,然后点击确定
10、选择源码管理 -->选择Subversion,在 Repository URL 输入svn地址,在Credentials 栏点击add按钮添加svn的账户
11、svn账户我们只填写 Username 和 Password 就行,其他默认就好,点击添加会自动保存退出
12、在 Credentials
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'
13、svn信息配置好之后,现在轮到maven了,点击构建触发器-->增加构建步骤-->调用顶层maven目标
15、会出现maven的简单配置,我们需要点击右下角的 高级 按钮,会出现以下页面
其中,maven 版本选择我们刚刚配置的maven
目标 其实就是goals,意思是输入maven命令:clean install
POM 中输入 pom.xml
然后点击最下面的应用按钮,并且保存
这时候进入主页,就可以看到构建栏里面有一项我们刚刚创建的项目
点击构建按钮,在控制台就可以看到打印的信息啦,
构建成功后是这样的
那么现在还有一个问题,构建成功之后只是打包而已,jenkins自动构建是根据pom.xml文件上的 packaging 标签的打包方式进行打包的,是不会自动运行jar内容的,这时候可以这样做:
在构建列表选择一个构建项目-->点击右边小三角-->配置
进入配置页面后,依次点击 构建环境-->增加构建步骤--> 执行windows批处理命令
在命令栏输入以下命令
#每换一行输入一次回车
#进入d盘
d:
#进入jar包目录
cd D:\jenkins workspaces\workspace\eurekaserver\target
#执行jar文件
java -jar eurekaserver-0.0.1-SNAPSHOT.jar
然后点击保存,进入主页的构建列表,点击右边的构建按钮
构建完项目之后,会自动执行windows控制台命令,运行之后,构建列表的项目进度条会一直存在,表示这个项目在一直运行中