使用jenkins+svn自动部署java/vue项目
之前发布代码需要每次本地打包-->发到服务器-->重启tomcat等一系列操作,服务器多了会很繁琐,使用jenkins可以自动部署和统一管理,解放人力,挤出很多喝茶时间。
1、下载jenkins.war
官网地址 http://jenkins-ci.org/
下载最新版本
http://mirrors.jenkins-ci.org...
2、把下载的war包放到到服务器tomcat的webapps目录下,启动tomcat
3、启动成功后log会打印一个UUID密码,复制,登陆时用
4、输入tomact地址,进入jenkins首页,会提示自动安装需要的插件(如果不能在线安装,需要去自己下载之后上传
插件下载地址 http://updates.jenkins-ci.org...
5、创建项目.
首页点击新建item
创建一个自由风格项目,自定义一个名称projectName,确认
6、配置svn,点击add 添加自己的svn账户
7、配置触发器(指定时间自动部署)
不需要自动触发的同学可略过此步骤,之后手动点击`立即构建`按钮即可 05 10 * * * 为cron表达式,表示每天上午10:05
8、设置execute shell(部署时执行的脚本)
这里用java项目举例
BUILD_ID=DONTKILLME # ProjectName是刚才**第5步**中填入的名称,jenkins默认工作空间为/root/.jenkins/workspace cd /root/.jenkins/workspace/projectName/ # 将代码打包 mvn package # 将打包后的代码移到服务器的tomcat目录下,这里我自己写了一个deploy.sh去处理copy-解压-备份-重启tomcat等一系列操作 cd /root/.jenkins/workspace/projectName/target mv projectName.war /home/shibo && deploy.sh
以上shell脚本只是举例,具体可根据自己需求更改,比如vue的话就将mvn package改为npm run build......
到这就可以保存了,然后测试一下是否可以正常使用。首页点击制定项目下三角,点击立即构建即可。
下面是我在搭建的时候遇到的一些问题,仅供参考:
1、第一次登录后下线,第二次不能用user账户登陆
解决方法:去/root/.jenkins/secrets下找到initialAdminPassword ,复制密码,用admin登陆
2、maven分布式子项目没有web.xml,导致mvn打包报错
解决方法:在pom.xml中添加
<properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties>
3、execute shell中执行deploy.sh脚本时,有用到shutdown.sh
和startup.sh
两个命令,
发现tomcat关闭后,startup不能自动启动
原因是execute会自动kill掉tomcat
解决方法:在execute shell第一行添加BUILD_ID=DONTKILLME
4、execute shell时,有时有一些不是很重要的脚本命令出错,我们需要忽略他们,继续执行,
需要点开 高级-->设置Exit code to set build unstable
= 1