Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目

一般Web工程通过Jenkins远程部署到Tomcat,可以采用Maven的tomcat-maven-plugin插件进行部署。最近接触到Spring Boot工程的部署,由于Spring Boot应用可以使用内部集成的服务容器(如Tomcat),此时无需按原来的方法进行部署。


准备工作:

1、需要在linux服务器中安装JDK参考笔者博客:Linux中安装配置jdk1.7

2、需要在linux服务器中安装Maven参考笔者博客:Linux安装配置Maven

3、需要在linux服务器中安装tomcat参考笔者博客:Linux安装配置tomcat

4、Jenkins入门教程之配置jdk、maven、svn、git(三)参考笔者博客:Jenkins入门教程之配置jdk、maven、svn、git(三)

5、Jenkins入门教程之安装maven构建插件(四)参考笔者博客:Jenkins入门教程之安装maven构建插件(四)

6、Jenkins入门教程之安装Deploy Plugin(五)插件并配置参考笔者博客:Jenkins入门教程之安装Deploy Plugin插件并配置(五)

7、Jenkins入门教程之安装Publish over SSH(六)插件并配置参考笔者博客:Jenkins入门教程之安装Publish over SSH插件并配置(六)

8、Jenkins入门教程之安装svn插件并配置(九)参考笔者博客:Jenkins入门教程之安装svn插件并配置(九)


演示项目用的是spring boot整合JPA+thymeleaf模版引擎做的一个CRUD,源码我会更新到github

详细步骤:


1、新建项目

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第1张图片

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第2张图片


2、配置svn

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第3张图片




Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第4张图片


输入svn用户名、密码

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第5张图片


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第6张图片


选择配置的用户、填写项目svn地址

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第7张图片


3、配置maven打包指令


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第8张图片


4、配置 SSH

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第9张图片


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第10张图片


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第11张图片


说明:

Source files配置:target/*.jar jar包名,多个项目都在同一目录建议用项目.jar
Remove prefix:target/
Remote directory:/usr/local/jenkins-script// 代码应用服务器的目录地址,
Exec command:/usr/local/jenkins-script/startup.sh 应用服务器对应的脚本。


5、构建项目

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第12张图片

查看日志

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第13张图片


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第14张图片

下载jar中

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第15张图片



6、报错:提示脚本没有权限


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第16张图片


执行授权

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第17张图片


7、再次构建


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第18张图片


这个过程比较慢可能是网络带宽问题


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第19张图片


构建成功 并已经启动项目


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第20张图片


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第21张图片

Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第22张图片


8、访问 (这个项目用的是spring boot整合JPA+thymeleaf模版引擎)


Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目_第23张图片


脚本:

DATE=$(date +%Y%m%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/java/jdk1.8.0_151
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=//usr/local/project-jar/bootthymeleaf-0.0.1-SNAPSHOT.jar
JARFILE=bootthymeleaf-0.0.1-SNAPSHOT.jar

if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi
cd $DIR

ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /usr/local/jenkins-script//$JARFILE .

java -jar $JARFILE > out.log &
if [ $? = 0 ];then
        sleep 30
        tail -n 50 out.log
fi

cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

你可能感兴趣的:(Jenkins,Jenkins系列教程)