jenkins部署springboot项目

记录一下初次部署成功的经验

jenkins的介绍和安装、以及插件配置我就不说了,很多文章都说了。我只记录一下亲测有效的部署操作。
假设你的jenkins中,maven、git、jdk都已经配置好:
在这里插入图片描述
项目目录是这样色儿的:

 	helloworld
 	  |--src
      	|--main
      		|--java
      		|--resource
      |--target
  1. 新建一个pipeline项目
    在这里插入图片描述

  2. 新建后什么都不用管,直接翻到构建触发器,会有一些构建脚本demo给你使用,选择Github + Maven( 脚本是在git项目根目录,即前述helloworld,下执行)
    在这里插入图片描述

pipeline {
    agent any

    tools {
        // Install the Maven version configured as "M3" and add it to the path.
        maven "M3"
    }

    stages {
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git 'https://github.com/jglick/simple-maven-project-with-tests.git'

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"

                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }

            post {
                // If Maven was able to run the tests, even if some of the test
                // failed, record the test results and archive the jar file.
                success {
                    junit '**/target/surefire-reports/TEST-*.xml'
                    archiveArtifacts 'target/*.jar'
                }
            }
        }
    }
}

上面是默认脚本,依葫芦画瓢,做些定制化改动。
下面这个我最后使用的脚本:

pipeline {
    agent any

    tools {
        //前述配置mavne的时候配置的maven名称
        maven "maven"
    }

    stages {
        stage('Build') {
            steps {
            	//如果是私有仓库,需要提供凭证(账号密码),参见文末凭证配置
                git branch: 'master', credentialsId: 'gitlab', url: '项目git地址'

                sh "mvn -Dmaven.test.failure.ignore=true clean package"
				
				//复制jar到jenkins外的目录(这一步可凭自己喜好选择做与不做,只是将jar放哪儿的问题,如果目录不存在,则先创建为妙)
                sh "cp target/xxx.jar /home/piao/jenkins/workspace/helloworld/"

                // Windows
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }
        //运行JAR包
        stage('Run') {
            steps {
	            //sh "if (ps -ef| grep java|grep ${project_name})then (ps -ef| grep java|grep ${project_name}| awk '{print \$2}'|xargs kill -9) fi"
	            //withEnv能解决部署success后,进程直接消失,即拉取代码、项目编译、项目启动都成功,可应用就是起不来的问题。感兴趣的可以先去掉withEvn函数,直接使用里面的指令
	            withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
                    sh """
                        /home/piao/jenkins/workspace/helloworld/startHelloworld.sh
                     """
                }
            }
        }

    }
}

startHelloworld.sh

#!/bin/bash
workspace=/usr/xxx/jenkins/workspace/
#pid=$(lsof -i :80 -t)       
pid=`ps -ef|grep helloworld.jar|grep -v grep|awk '{print $2}'`                            
if [ -n "$pid" ]; then
         echo "Stopping existed process : "$pid
	 kill -TERM $pid
	 kill -KILL $pid
fi  

#export BUILD_ID=dontKillMe
curtime=`date +"%Y%m%d%H%M%S"`
echo $curtime" Starting helloworld..."
                    
nohup java -Xms64m -Xmx256m -jar $workspace/helloworld/helloworld.jar --spring.profiles.active=test >> $workspace/helloworld/helloworld.log &

配置完成后,点击立刻构建-构建计划,任务就开始了。可以点击构建计划查看日志

在这里插入图片描述

凭证配置:

为什么要配置凭证?其实如果你没有配置git凭证的话,jenkins也会在控制台问你要密码,可是——且不说我们搞自动化部署,不可能手动去输什么指令——就算你愿意动手,你输入,它还要你输,你一直输,它还一直要你输。。。。。。乜屎啦你

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

还有可能遇到的坑:

第一次从一个仓库拉取数据的时候,jenkins可能会在控制台问你是否接受指纹,呵呵
如果你碰到了,手动先git clone一次,问题不大

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值