3.3使用jenkins管理模块化springboot项目(增强2.1和2.2)

 

  • 项目摘要:

本文基于文档https://blog.csdn.net/qq_25337221/article/details/106160024

https://blog.csdn.net/qq_25337221/article/details/106185232编写。

主要是在之前的基础上添加prometheus-service项目。本实例仍然是入门项目。

  • 项目具体实施:
  1. 自由风格方式
  1. 修改build前shell

echo "Stopping SpringBoot Application"

pids=$(ps -ef | grep 0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}')

if [ -n "$pids" ]; then

    echo $pids

    for pid in $pids; do

         echo $pid

        kill -9 $pid   

    done

fi

2. 修改build后shell

#!/bin/bash -ile

userServiceProject=user-service-0.0.1-SNAPSHOT.jar

prometheusServiceProject=prometheus-service-0.0.1-SNAPSHOT.jar

userServicePath=springboot-demo-freestyle/user-service 

prometheusServicePath=springboot-demo-freestyle/prometheus-service

echo "拷贝文件"

rm -rf /usr/local/src/java/*

cp  /var/lib/jenkins/workspace/$userServicePath/target/$userServiceProject /usr/local/src/java/

cp  /var/lib/jenkins/workspace/$prometheusServicePath/target/$prometheusServiceProject /usr/local/src/java/ 

echo "切换路径"

cd /usr/local/src/java/

BUILD_ID=dontKillMe

echo "执行"

nohup java -jar $userServiceProject & 

nohup java -jar $prometheusServiceProject &

echo "启动成功!"

 2.pipline方式

  1. Pipline脚本

pipeline{

    agent any

     tools {

        maven 'maven3.6.3'

        jdk 'jdk1.8'

    }

     environment{

        TASK_NAME="springboot-demo-pipline"

        ROOT_PROJECT_PATH="user-system"

        USER_SERVICE_PROJECT="user-service-0.0.1-SNAPSHOT.jar"

        USER_SERVICE_PROJECT_NAME="user-service"

        PROMETHEUS_SERVICE_PROJECT="prometheus-service-0.0.1-SNAPSHOT.jar"

        PROMETHEUS_SERVICE_PROJECT_NAME="prometheus-service"

    }

    options{

        buildDiscarder(logRotator(numToKeepStr: '10'))

        timestamps()

    }

      triggers{

         pollSCM('H/1 * * * *')

    }

    stages{

        stage('Preparation'){

            steps{

                echo 'pulling code'

                 /*git code*/

            }

        }

        stage('Build'){

            steps{

           script{

           echo 'Stopping SpringBoot Application'

            sh "ps -ef | grep 0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print \$2}' | xargs -i kill -9 {}"

            echo 'starting build'

            sh 'mvn -f $ROOT_PROJECT_PATH  clean install -Dmaven.test.skip=true'

            echo 'deleteing old project'      

            sh 'rm -rf /usr/local/src/java/*'

            echo 'copy new project'

            sh 'cp /var/lib/jenkins/workspace/$TASK_NAME/$USER_SERVICE_PROJECT_NAME/target/$USER_SERVICE_PROJECT /usr/local/src/java/'

            sh 'cp /var/lib/jenkins/workspace/$TASK_NAME/$PROMETHEUS_SERVICE_PROJECT_NAME/target/$PROMETHEUS_SERVICE_PROJECT /usr/local/src/java/'

            echo "starting project" 

            sh 'JENKINS_NODE_COOKIE=dontKillMe nohup java -jar /usr/local/src/java/$USER_SERVICE_PROJECT >log.txt  2>&1 &'

            sh 'JENKINS_NODE_COOKIE=dontKillMe nohup java -jar /usr/local/src/java/$PROMETHEUS_SERVICE_PROJECT >log.txt  2>&1 &'

            echo "startup success!"

           }             

         }     

      }

  }

      post {

        success {

            emailext (

                subject: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",

                body: """<p>SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>

                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",

                to: "your@qq.com,your@qq.com",

                from: "your@qq.com"

            )

          slackSend channel: "#test-jenkins", message: "Content Build and Validate Succeded for ${env.CONTENT_GIT_REPO} for Repository ${env.CONTENT_GIT_URL} by ${env.JOB_NAME} (<${env.BUILD_URL}|Open>)", color: 'success', tokenCredentialId: 'slack-token'           

        }

        failure {

            emailext (

                subject: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",

                body: """<p>FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>

                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",

                to: "your@qq.com,your@qq.com",

                from: "your@qq.com"

            )

            slackSend channel: "#test-jenkins", message: "Content Build and Validate FAILED for ${env.CONTENT_GIT_REPO} for Repository ${env.CONTENT_GIT_URL} by ${env.JOB_NAME} (<${env.BUILD_URL}|Open>)", color: 'warning', tokenCredentialId: 'slack-token'

        }

    }

}

  • 参考链接:
  1. 批量杀进程: https://blog.csdn.net/ctypyb2002/article/details/78519014

本内容由安康学院“雨季”原创。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值