swsrl 发表于 2018-1-8 23:27:48

jenkins + svn +maven +jar 部署

  Jenkins 2.46.1
  Centos 7.3
  JDK 7

安装jdk/maven/svn
  在Jenkins所在的Linux机器安装jdk和maven,步骤就不说了,下面是环境变量:




https://common.cnblogs.com/images/copycode.gif
export JAVA_HOME=/usr/local/jdk1.7.0_65
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export M2_HOME=/usr/local/apache-maven-3.0.5
export PATH=$M2_HOME/bin:$PATH

https://common.cnblogs.com/images/copycode.gif  注意:maven的conf/settings.xml配置应该是自己项目的,这里也省略了;
  svn直接用yum安装即可:



# yum install svn -y
安装Jenkins插件
  浏览器登录Jenkins,进入插件管理,安装下面三个插件:



Maven Integration plugin
Subversion Plug-in
Publish Over SSH
  同时会有其他依赖的插件安装,若有安装失败的就去http://updates.jenkins-ci.org/download/plugins下载后在“高级”那里上传上来即可;
  都安装完成后重启下Jenkins:



# systemctl restart jenkins
在Jenkins配置jdk/maven/svn
  浏览器登录Jenkins,进入“系统管理” -> “Global Tool Configuration”,配置jdk和maven后保存:
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415150211939-638503211.png
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415150155595-1672148189.png
  下面创建一个maven类型的任务(job):
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415150446095-795481351.png
  (填入svn信息)
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415151025939-1097374178.png
  (添加svn用户:输入username和password即可)
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415151129923-728304551.png
  (构建触发器,H/5 * * * * 表示每5分钟检查一次,如果svn有更新就进行一次构建)
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415151341267-1381553758.png
  (maven参数)
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415151514845-1500587870.png
  最后点击“保存”按钮,然后会进入这个新建的任务页面,点击“立即构建”试试:
  (第一次构建遇到过报错:SVNAuthenticationException: svn: E170001: Authentication required for 'reps',进到配置里重新选一下svn用户即可)
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415151920236-594180964.png

自动部署
  自动检测svn并构建仍然不够,还需要自动部署和重启;
  首先需要配置Jenkins所在Linux到部署Linux的免密登录,假设两者ip分别为192.168.1.111和112,则在111上执行命令:
  (命令1有交互按自己的需求填写,简单的就全部直接回车)
  (命令2需要输入112的root密码)



# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.112
  接着在浏览器,进入“系统管理” -> “系统设置”,配置SSH:
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415153643736-91885071.png
  然后再这个SSH配置的下方增加112机器的配置:
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415154110501-958787751.png
  下面进入前面新建的任务的配置中,在“增加构建后操作步骤”中选择“Send build artifacts over SSH”:
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415152846080-1461011858.png
https://images2015.cnblogs.com/blog/515176/201704/515176-20170415154800330-1588751777.png
  强调一,目标文件,这里是任务路径下的相对路径,与浏览器中任务的工作空间看到的路径一致;
  强调二,传输到目标路径,这个是“系统设置”中那个“远程工作目录”的相对路径,比如这里就是把file.zip传到/usr/local/assembly/;
  保存后再次构建,构建完成后,在112机器上检查:



# ll /usr/local/assembly/file.zip
-rw-r--r-- 1 root root 25052989 Apr 15 15:53 /usr/local/assembly/file.zip
  实现的效果:对这个maven工程,每五分钟检测svn,若有提交则构建并更新和重启;
页: [1]
查看完整版本: jenkins + svn +maven +jar 部署