上篇主要介绍jenkins部署环节时的基础环境配置,本篇介绍如何利用jenkins把项目发布到远程服务器中
输入任务名称,选择构建maven项目,点击确定
注:参数化构建过程可以提供maven构建时所需要的键值对参数,比如下图
根据项目选择版本控制,本文是以svn为案例,因此选择Subversion
填入svn远程服务器地址:http://localhost/svn/Muse-Workflow@HEAD,@Head意思是取svn服务器上最新版本,选择已经配置好的svn凭证(即:访问svn服务器的用户名和密码)
选择Send files or execute commands over SSH after the build runs
a、Sourec files 这个是配置需要执行的jar,war或者其他压缩包 b、Remove prefix 这个是移除前缀目录的,本项目的压缩包在根目录下面的target下面,所以要移除target这个目录 c、Remote directory 这个目录是要传送压缩包包到目标服务器的目录。 d、Exec command 这个是要执行的远程脚本目录,部署,达到自动化部署的目的,如果不写脚本,那就jenkins只能帮你把压缩包包传到目标服务器而已。 e、构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来
输入maven打包命令
clean package -P dev -Dlogstash.host=${logstashHost} -Dfile_server_addr=${fileServerAddr} -Dfastdfs.tracker_servers=${fastdfsTrackerServers} -Dmaven.test.skip=true点击保存
选择 Build with Parameters
查看控制台输出
从日志可以看出构建并发布成功
以上就是通过jenkins发布项目到远程服务器的例子,如果公司自己内部的开发的公共jar包,要记得及时更新到公司内部maven私服,以免项目发布失败。至于如何通过nexus建立maven仓库私服,改天分享个教程
1、本例中解压zip并执行发布命令脚本
cd /root/oaCore/${project_name}/${BUILD_TIMESTAMP}
ls -a | sort -r | head -n 1 | xargs unzip
cd $(ls -a | sort -r | head -n 1 | xargs -I {} basename {} .zip)
sh install.sh
sleep 3
service ${project_name} start
2、springboot项目通用执行脚本
#!/bin/bash
SpringBoot=$2
if [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1
fi
if [ "$SpringBoot" = "" ];
then
echo -e "\033[0;31m 未输入应用名 \033[0m"
exit 1
fi
function start()
{
count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
if [ $count != 0 ];then
echo "$SpringBoot is running..."
else
echo "Start $SpringBoot success..."
nohup java -jar $SpringBoot > /dev/null 2>&1 &
fi
}
function stop()
{
echo "Stop $SpringBoot"
boot_id=`ps -ef |grep java|grep $SpringBoot|grep -v grep|awk '{print $2}'`
count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
if [ $count != 0 ];then
kill $boot_id
count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
boot_id=`ps -ef |grep java|grep $SpringBoot|grep -v grep|awk '{print $2}'`
kill -9 $boot_id
fi
}
function restart()
{
stop
sleep 2
start
}
function status()
{
count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
if [ $count != 0 ];then
echo "$SpringBoot is running..."
else
echo "$SpringBoot is not running..."
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
echo -e "\033[0;31m Usage: \033[0m \033[0;34m sh $0 {start|stop|restart|status} {SpringBootJarName} \033[0m
\033[0;31m Example: \033[0m
\033[0;33m sh $0 start esmart-test.jar \033[0m"
esac