前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持续集成工具之jenkins部署篇(下篇)

持续集成工具之jenkins部署篇(下篇)

作者头像
lyb-geek
发布2022-03-10 13:27:57
3810
发布2022-03-10 13:27:57
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

一、前言

上篇主要介绍jenkins部署环节时的基础环境配置,本篇介绍如何利用jenkins把项目发布到远程服务器中

二、项目部署发布

1、新建任务

输入任务名称,选择构建maven项目,点击确定

2、参数化构建过程(可选)

注:参数化构建过程可以提供maven构建时所需要的键值对参数,比如下图

3、源码管理

根据项目选择版本控制,本文是以svn为案例,因此选择Subversion

填入svn远程服务器地址:http://localhost/svn/Muse-Workflow@HEAD,@Head意思是取svn服务器上最新版本,选择已经配置好的svn凭证(即:访问svn服务器的用户名和密码)

4、构建环境

选择Send files or execute commands over SSH after the build runs

5、构建环境(参数介绍)

a、Sourec files 这个是配置需要执行的jar,war或者其他压缩包 b、Remove prefix 这个是移除前缀目录的,本项目的压缩包在根目录下面的target下面,所以要移除target这个目录 c、Remote directory 这个目录是要传送压缩包包到目标服务器的目录。 d、Exec command 这个是要执行的远程脚本目录,部署,达到自动化部署的目的,如果不写脚本,那就jenkins只能帮你把压缩包包传到目标服务器而已。 e、构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来

6、Build

输入maven打包命令

代码语言:javascript
复制
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并执行发布命令脚本

代码语言:javascript
复制
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项目通用执行脚本

代码语言:javascript
复制
#!/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
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、项目部署发布
    • 1、新建任务
      • 2、参数化构建过程(可选)
        • 3、源码管理
          • 4、构建环境
            • 5、构建环境(参数介绍)
              • 6、Build
              • 三、运行构建
              • 四、总结
              • 五、附录部分脚本参数
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档