相信技术的力量

Jenkins持续集成Springboot项目,SVN管理项目

基本的使用在此不再记录, 参考以下链接即可正常安装, 图文并茂,很不错.

https://blog.csdn.net/wuruijie321/article/details/84134763
https://www.cnblogs.com/fengwenzhee/p/10448474.html
https://my.oschina.net/tonystark/blog/1920889
https://www.cnblogs.com/ityouknow/archive/2017/11/26/7899349.html

唯一需要注意的就是初始的用户名和端口的修改了

基础环境

服务器环境: Cenos7.4

所需工具:

Jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

Maven

sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven
mvn -version

JDK

...

插件安装

位置: 系统管理->插件管理->可选插件

Maven Integration plugin : maven插件

Subversion Plug-in : svn插件

Publish Over SSH : 通过该插件, 可以将构建的内容通过SSH发布到远程服务器

系统设置

这里有很多可以配置的, 随着深入使用,再逐步完善

Publish over SSH

ssh配置

可以配置多个, 这里配置完毕后, 就可以在新建任务时使用

全局工具配置

位置: 系统管理->全局工具配置

Maven配置

使用自定义的配置文件: /usr/share/apache-maven/conf/settings.xml

JDK (不要勾选自动安装)

别名: JDK
JAVA_HOME: /usr/java/jdk1.8.0_121

Maven安装 (不要勾选自动安装)

Name: maven
MAVEN_HOME: /usr/share/apache-maven/

新建任务

这里先新建一个maven项目

源码管理

开始构建时, 会从SVN拉取代码到工作空间, 然后开始进行项目构建. 另外,如果要自动化构建, 这里也是轮询的目标

源码管理

自动化构建

每分钟轮询, 注意表达式中间的空格 ,也可以自定义其他的表达式

* * * * *

自动化构建

参考: https://www.cnblogs.com/shuai7boy/p/9692958.html

构建环境

构建环境

构建命令

常规maven命令

clean package -Dmaven.test.skip=true

构建命令

构建后操作

构建后操作

这里需要注意的就是Remote directory了 ,最终生效的路径为:

SSH服务器的根 Remote Directory + 项目子Remote Directory

一般单项目使用SSH服务的根目录,这里直接留空即可. 多项目的话,可能会用到

根目录 + 子目录1
根目录 + 子目录2

常见问题

Jenkins needs to know where your Maven is installed

服务器已经安装了Maven, 但是依然提示这个, 因为需要在Global Tool Configuration 中配置Maven

https://www.cnblogs.com/ycyzharry/p/6653905.html

Jenkins 无法取得SVN最新版本

1.在svn配置的url上加上@HEAD后缀 ,例如svn://XXXX@localhost:8080/xxxxxx/test@HEAD
2.重启Jenkins service jenkins restart

参考链接: https://blog.csdn.net/lijun169/article/details/86593801

todo

可以考虑优化的地方:
1.直接本地svn拉取代码,有没有更快速的方式?

2.阿里云内网ssh,速度应该快于外网

按如下配置,未生效, 待研究
https://help.aliyun.com/knowledge_detail/38162.html?spm=5176.11065259.1996646101.searchclickresult.5a617201e1zTPX

需用使用VPC告诉通道,收费.暂时搁置.

3.执行的命令必须放在目标服务器上吗? 直接输出不行吗(目前测试是不生效的)

  1. 集成web端项目

⬆️