项目部署在linux 服务器中,每次要手动打包上传然后java 命令启动。这次打算做成自动化部署。
废话不多说直接看图,jenkins的基本操作不多说自己百度。
1,首先新建一个任务,选择maven风格
2,代码库选择git或者svn 需要安装jenkins的对应插件,直接在jenkins 插件管理中安装。填入项目仓库地址,登录账号
账号在系统设置--凭据中添加
3,设置maven pom.xml , 设置打包模块打包命令:clean package install -pl dmw-admin -am -Dmaven.test.skip=true(指定打包dmw-admin模块,跳过测试)
4,添加构建后操作--通过SSH发送文件到服务器并执行启动脚本
其中“dmw-admin/target/dmw-admin.jar” 指定jenkins工作空间中生产jar包的位置。模块目录/target/xx.jar。。。/data/work/soft为linux服务器中项目部署路径
下面的脚本:复制jar包到对应目录(这里有个问题,通过这种方式传输的jar包默认在root目录下所以需要复制)
进入目标目录,授权,执行启动脚本。
5启动脚本实例
#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8/bin/
echo ${JAVA_HOME}
echo "stop dmw-admin.jar"
pid=`ps -ef | grep dmw-admin.jar | grep java | grep -v grep | awk '{print $2}'`
echo “旧应用进程id:$pid”
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo "执行...."
chmod 777 dmw-admin.jar
nohup ${JAVA_HOME}java -jar -Dspring.profiles.active=demo dmw-admin.jar > /dev/null &
echo "启动成功"
判断原java进程是不是存在,如果存在kill掉。然后启动。这里有注意点(1,上面的JAVA_HOME路径不同服务器会有不同 2,脚本编辑后一定要用utf-8保存 3,脚本本身要有可执行权限)
至此,完成。
实际操作中有问题,可以在评论问我。。