jenkins-pipeline流水线构建java项目

jenkisn-流水线构建java项目发布到后台服务器启动

目的,通过jenkisn可以选择分支构建成 jar包,发送到后台服务器,然后启动后边服务器脚本,启动java项目

第一步选择构建保留

jenkins-pipeline流水线构建java项目_第1张图片

第二步,选择参数化构建

jenkins-pipeline流水线构建java项目_第2张图片

第三步-定义流水线

jenkins-pipeline流水线构建java项目_第3张图片

流水线语法标准参考缺什么添加什么
# 这个是声明式拉取代码,这个是成功的
pipeline { 
   agent any 
   stages { 
      stage('拉取代码') { 
          steps { 
              #添加内容 
            } 
        }
      stage('切换分支') {
            steps {
                echo '开始拉release-test分支.....'
                #添加内容 
            }
		}
      stage('编译打包') { 
             steps { 
              #添加内容 
            } 
        } 
      stage('发布到服务器') { 
             steps { 
              #添加内容 
            } 
        }             
   }
}

编写流水线语法
jenkins-pipeline流水线构建java项目_第4张图片

拉取代码
jenkins-pipeline流水线构建java项目_第5张图片

拉取完代码详情

jenkins-pipeline流水线构建java项目_第6张图片

第二步切换分支,由于咱们定义了tag,咱们可以选择分支构建,这一步就跳过了

编译打包

jenkins-pipeline流水线构建java项目_第7张图片
拉取完代码详情

jenkins-pipeline流水线构建java项目_第8张图片

模板 shh

jenkins-pipeline流水线构建java项目_第9张图片

中文翻译
jenkins-pipeline流水线构建java项目_第10张图片

发布到远程服务器

jenkins-pipeline流水线构建java项目_第11张图片

生成语法
jenkins-pipeline流水线构建java项目_第12张图片

编写完配置
jenkins-pipeline流水线构建java项目_第13张图片

上边有个问题,ssh没有把jar包发布到后台服务器,这里我们采用 ansible把他发布到后台服务器,然后使用shell 命令启动脚本

jenkins-pipeline流水线构建java项目_第14张图片

填入进去
jenkins-pipeline流水线构建java项目_第15张图片

启动脚本

jenkins-pipeline流水线构建java项目_第16张图片

编写完成的

jenkins-pipeline流水线构建java项目_第17张图片

更改最终版
image-20220521000540324

完整版代码

pipeline { 
   agent any 
   stages { 
      stage('拉取代码') { 
          steps { 
             checkout([$class: 'GitSCM', branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://git.ibimfish.cn/Suzhou/pond.git']]])
            } 
        }
    //   stage('切换分支') {
    //         steps {
    //             echo '开始拉release-test分支.....'
    //             git branch: "release-test",credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://git.ibimfish.cn/Suzhou/pond.git'
    //         }
	// 	}
      stage('编译打包') { 
             steps { 
              sh 'mvn  clean package install -Dmaven.test.skip=true -DarchetypeCatalog=local'
            } 
        } 
      stage('拷贝jar包') { 
             steps { 
             sh 'ansible tomcat -m copy -a  "src=/root/.jenkins/workspace/pipeline-pond/pond/target/pond.jar  dest=/stet/"'
            } 
        } 
      stage('启动脚本') { 
             steps { 
             sshPublisher(publishers: [sshPublisherDesc(configName: '192.168.2.204', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /stet
source /etc/profile
bash  up.sh
''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            } 
        }                    
   }
}

代码图
jenkins-pipeline流水线构建java项目_第18张图片

执行成功图
jenkins-pipeline流水线构建java项目_第19张图片

完整版遇到的问题

代码什么都写完出现这个
jenkins-pipeline流水线构建java项目_第20张图片

解决问题,因为你再片段生成器里面已经指定tag了 这里你就要更改一下

jenkins-pipeline流水线构建java项目_第21张图片

先构建一次让他报错
jenkins-pipeline流水线构建java项目_第22张图片

问题解决完
jenkins-pipeline流水线构建java项目_第23张图片

构建出来的jar包正常执行了,也是启动了但是jenkins构建显示有问题没有显示成功

jenkins-pipeline流水线构建java项目_第24张图片

解决方法

jenkins-pipeline流水线构建java项目_第25张图片

成功
jenkins-pipeline流水线构建java项目_第26张图片

成功完整代码

pipeline { 
   agent any 
   stages { 
      stage('拉取代码') { 
          steps { 
             checkout([$class: 'GitSCM', branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://git.ibimfish.cn/Suzhou/pond.git']]])
            } 
        }
    //   stage('切换分支') {
    //         steps {
    //             echo '开始拉release-test分支.....'
    //             git branch: "release-test",credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://git.ibimfish.cn/Suzhou/pond.git'
    //         }
	// 	}
      stage('编译打包') { 
             steps { 
              sh 'mvn  clean package install -Dmaven.test.skip=true -DarchetypeCatalog=local'
            } 
        } 
      stage('拷贝jar包') { 
             steps { 
             sh 'ansible tomcat -m copy -a  "src=/root/.jenkins/workspace/pipeline-pond/pond/target/pond.jar  dest=/root/upload/"'
            } 
        } 
      stage('启动脚本') { 
             steps { 
             sshPublisher(publishers: [sshPublisherDesc(configName: '192.168.2.204', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /pipeline-pond
source /etc/profile
bash up.sh

''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '', usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            } 
        }                    
   }
}

ory: ‘’, remoteDirectorySDF: false, removePrefix: ‘’, sourceFiles: ‘’, usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}


你可能感兴趣的:(自己总结,jenkins,java,运维)