SVN + Maven + jenkins 实现自动化构建

6 篇文章 0 订阅
3 篇文章 0 订阅

搭建环境说明:

SVN 在window下 运行在 192.168.74.1
jenkins 在 linux下 运行在 192.168.58.135 版本1.65
Maven 在 linux下 运行在 192.168.58.135 版本3.0.4
tomcat7.0.4
远程主机 192.168.5.106
tomcat7.0.4
JDK 1.8.0_05

1 将jenkins.war 上传到192.168.58.135 /usr/local/tomcat8.5.9/webapps 下
通过启动tomcat 访问jenkins
或者可以使用 java -jar jenkins.war 命令

2 添加环境变量,修改工作目录
创建 /opt/jenkins ,
在/etc/profile中添加环境变量export JENKINS_HOME=/opt/jenkins,
source /etc/profile 使修改生效
如果不添加环境变量JENKINS_HOME,则默认工作目录用户工作目录下在:/root/.jenkins

3 启动tomcat。在浏览器输入http://192.168.58.135:8080/jenkins

4 添加插件
jenkins是一个可以添加插件的集成工具
点击左侧的“系统管理”—-“管理插件” —–“可选插件” 选择需要安装的插件
如: delpoy to container plugin
publish over SSH
Maven Integration plugin
SSH plugin
SVN Publisher plugin
Hudson SCP publisher plugin
点击”直接安装” —-然后安装完成重启

或者选择“高级”选项卡中—上传插件

5 系统设置
点击左侧的“系统管理”—-“系统设置”

Maven Configuration
这里写图片描述

jdk 安装
这里写图片描述

maven 安装
这里写图片描述

这里写图片描述

jenkins的访问地址(默认自己生成)
这里写图片描述

SVN的配置
这里写图片描述

Publish over SSH
这里写图片描述

Passphrase —— 与下面Username—root 的密码
Name – —– 192.168.5.106_ssh 为远程主机的名称
Hostname —-192.168.5.106 远程主机的ip
Username —–登陆远程主机的用户名
Remote Directory ——指定jenkins 在远程主机上的部署目录

点击“test configuration ” 测试下配置远程主机是否能通讯

6 新建项目
点击左边“新建”—–输入“item名称” —-选择“构建一个maven项目”

配置远程仓库:主要目的是从远程仓库拉取代码下来
这里写图片描述

这里写图片描述

这里写图片描述

配置maven 的目标:意思是使用maven进行 clean 、complier、package 、install 。
这里写图片描述

点击“高级” —-更改POM的默认地址pom.xml
这里写图片描述

/opt/jenkins/jobs/mymaven_myapptest3/workspace/myapptest1/target/myapptest1
/opt/jenkins 表示jenkins工作目录
jobs/mymaven_myapptest3 表示jenkins管理mymaven_myapptest3项目的目录
workspace 表示maven等插件的工作目录

send files or execute commands over SSH
这里写图片描述

SSH Server Name :要连接的远程主机名
Transfer Set Source files : jenkins所在的主机要传送的源文件是在这个路径下的 myapptest1/target/myapptest1.war war包

Remove prefix:在传送war 包到远程主机时需要去掉的前缀
Remote directory : 远程目录默认不填写就是之前在“系统设置”中设置的远程主机的目录

Exec command: 在远程主机上执行的shell 脚本

构建项目:这里表示构建项目使用maven的话 使用哪个maven配置文件:
(这里的clean和package 与 前面【配置maven 的目标】里面的一样的意思,至于执行哪个?测试了下是执行【配置maven 的目标】中的goals)

这里写图片描述

到此添加项目完成

这里写图片描述

**注意: 一定要注意如下的相对路径
Transfer Set Source files
Remove prefix
Root POM**

7 说明下 auto_deploy.sh 脚本

#!/bin/bash
log_time=`date +%Y%m%d%H:%M:%S`


#base parameter
tomcat_home=/usr/local/tomcat7.0.4
tomcat_port=8080
shell_environment=/bin/bash
war_dir=/opt/jenkins
war_name=myapptest1.war


#update  environment
echo   "*************${log_time}*********"
echo   "*************start  update  environment*********"
export JAVA_HOME=/usr/java/jdk1.8.0_05
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export TOMCAT_HOME=/usr/local/tomcat7.0.4
export CATALINA_BASE=/usr/local/tomcat7.0.4
export CATALINA_HOME=/usr/local/tomcat7.0.4

sleep  3


#update  server
echo   "*************start update server**********"
check_tomcat_status(){
    netstat  -nlpt|grep  ${tomcat_port} > /dev/null
    t=$?
    if [ $t -eq 0  ];then
       echo "tomcat is running  port is ${tomcat_port}"
       echo  "shutdown  tomcat......"
       echo  ">>>>>shutdown  tomcat  start >>>>>"
       ${shell_environment}  ${tomcat_home}/bin/shutdown.sh
       echo  ">>>>>shutdown  tomcat  end >>>>>"
       sleep  5
    elif [ $t  -ne  0 ];then
       echo "tomcat is poweroff"
       ${shell_environment} ${tomcat_home}/bin/shutdown.sh
       sleep 5
    fi
}

check_tomcat_status

deploy_location=${tomcat_home}/webapps

dirHaveWar=`ls ${war_dir}|grep ${war_name}|wc -l`
if [ ${dirHaveWar} -eq 0  ]; then
   echo  "%%%%%%%%%%%%%%   not  have   war  %%%%%%%%%%%%"
else
  echo  " ......../opt/jenkins   have  war......."
fi

isHaveWar=`ls ${deploy_location}|grep ${war_name}|wc  -l`   
if [ ${isHaveWar} -eq 0  ];then
   echo  "<<<<<< ${deploy_location}/${war_name} is  empty >>>>>"
   cp  ${war_dir}/${war_name}   ${deploy_location}
   echo  "*****cp  ${war_name}  to  ${deploy_location}******"
   sleep  3
else
   echo  "<<<<< find   ${deploy_location}/${war_name} >>>>>"
   rm  ${deploy_location}/${war_name}
   cp  ${war_dir}/${war_name}   ${deploy_location}
   echo  "*****cp  ${war_name}  to  ${deploy_location}*****"
   sleep  3
fi

echo " #####  deploy  ${war_name}  over  #####"



#reboot  tomcat
echo  " reboot  tomcat  start  .........."
${shell_environment}  ${tomcat_home}/bin/startup.sh
echo  "  reboot  tomcat  end  ........"
echo "************************ deploy war package into container Successlly  **********************************"

8 构建项目

点击“立即构建” 完成项目的构建
这里写图片描述

在构建历史中可以查看构建的日志:
如:#21 —– “Console Output”—-控制台输出
这里写图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值