自动化流程
git拉取项目资源 => maven编译打包 => jar包推送到目标服务器 => 使用shell脚本启动
软件安装
JDK 安装
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo update-java-alternatives -s java-8-oracle
测试:java -version
maven 安装
sudo apt-get install maven
测试:mvn -version
git 安装
sudo apt-get install git
配置ssh(Jinkens配置中会讲)
安装 Jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
安装成功之后将执行:
- 以守护进程启动 Jenkins,详细信息可以参考
/etc/init.d/jenkins
- 创建一个
jenkins
用户用以启动服务 - 如果 Jenkins 服务异常,可以查看
/var/log/jenkins/jenkins.log
日志文件 - Jenkins 的配置文件为
/etc/default/jenkins
,可以配置启动参数,比如JENKINS_HOME
- Jenkins 启动端口为8080,使用浏览器访问该端口开始配置项目
如果
/etc/init.d/jenkins
文件启动 Jenkins 服务失败,编辑/etc/default/jenkins
文件,把HTTP_PORT=8080
换成你的主机可以使用的端口号即可
Jenkins 配置任务
目前我所使用的还是最基础的功能,就是利用 Jenkins 执行 mvn 命令打包项目,然后再执行 shell脚本 进行服务的重启。其实看Jenkins文档发现
Pipeline(管道)
功能,很像我们前端的gulp
,就是利用有顺序的任务来管理构建过程,后面有时间可以再研究一下。
- 点击左上角的
新建任务
,输入项目名称,选择构建一个自由风格的软件项目
,确定。 - 在
源码管理
模块,选择Git
;输入你的仓库地址(url分为http与ssh两种类型的,一般使用ssh url),在Credentials
栏点击Add
按钮,选择jenkins
用户;
如图所示: image ,配好之后返回选择你要构建的分支。 - 在
构建模块
,选择Execute shell
, 然后把要执行的都写进来就好啦。
马上四点了,写不下去了...
踩到的坑
- shell脚本报错:Syntax error: word unexpected (expecting "do")
这是由于换行符造成的,请把
CRLF
换成LF
- maven的repository不是默认的
/root/.m2/repository
因为 Jenkins 运行时的用户为
jenkins
,而 maven 的仓库默认为{user.home}
就变成了var/lib/jenkins
下面的.m2/repository
;
- 使用 maven 的
settings.xml
指定本地仓库后 Jenkins 构建报错:==Could not create local repository at ...==
因为 jenkins 用户没有读取当前仓库的权限,可以修改
/etc/default/jenkins
=>JENKINS_USER=root JENKINS_GROUP=root
网友评论