jenkins-pipeline流水线构建java项目
jenkins自动化
·
jenkisn-流水线构建java项目发布到后台服务器启动
目的,通过jenkisn可以选择分支构建成 jar包,发送到后台服务器,然后启动后边服务器脚本,启动java项目
第一步选择构建保留
第二步,选择参数化构建
第三步-定义流水线
流水线语法标准参考缺什么添加什么
# 这个是声明式拉取代码,这个是成功的
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
#添加内容
}
}
stage('切换分支') {
steps {
echo '开始拉release-test分支.....'
#添加内容
}
}
stage('编译打包') {
steps {
#添加内容
}
}
stage('发布到服务器') {
steps {
#添加内容
}
}
}
}
编写流水线语法
拉取代码
拉取完代码详情
第二步切换分支,由于咱们定义了tag,咱们可以选择分支构建,这一步就跳过了
编译打包
拉取完代码详情
模板 shh
中文翻译
发布到远程服务器
生成语法
编写完配置
上边有个问题,ssh没有把jar包发布到后台服务器,这里我们采用 ansible把他发布到后台服务器,然后使用shell 命令启动脚本
填入进去
启动脚本
编写完成的
更改最终版
完整版代码
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)])
}
}
}
}
代码图
执行成功图
完整版遇到的问题
代码什么都写完出现这个
解决问题,因为你再片段生成器里面已经指定tag了 这里你就要更改一下
先构建一次让他报错
问题解决完
构建出来的jar包正常执行了,也是启动了但是jenkins构建显示有问题没有显示成功
解决方法
成功
成功完整代码
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)])
}
}
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)