jenkins-pipeline流水线构建java项目

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

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

第一步选择构建保留

image-20220520220952169

第二步,选择参数化构建

image-20220520221113350

第三步-定义流水线

image-20220520221204093

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

编写流水线语法
image-20220520223014581

拉取代码
image-20220520223344764

拉取完代码详情

image-20220520223701165

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

编译打包

image-20220520224454228
拉取完代码详情

image-20220520224626184

模板 shh

image-20220520225205912

中文翻译
image-20220520225301334

发布到远程服务器

image-20220520225601903

生成语法
image-20220520225736077

编写完配置
image-20220520225817834

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

image-20220520235017303

填入进去
image-20220520235518374

启动脚本

image-20220520235827109

编写完成的

image-20220520235937691

更改最终版
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)])
            } 
        }                    
   }
}

代码图
image-20220521000933026

执行成功图
image-20220521001016649

完整版遇到的问题

代码什么都写完出现这个
image-20220521105201506

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

image-20220521105331622

先构建一次让他报错
image-20220521105440384

问题解决完
image-20220521105527687

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

image-20220521095856708

解决方法

image-20220521100434936

成功
image-20220521100937093

成功完整代码

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)])
}
}
}
}


  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你的Jenkins流水线在安装了Java 17的情况下无法构建Java 17的代码,可能是因为Jenkins默认使用的Java版本与你安装的Java版本不一致。你可以尝试以下步骤来解决这个问题: 1. 确认Jenkins的Java路径:登录到Jenkins服务器,导航到"系统管理" > "全局工具配置"。在这个页面中,找到"JDK"部分,并确保配置了正确的Java 17路径。如果没有,请添加Java 17的安装路径,并保存配置。 2. 确认Jenkins流水线Java配置:进入你的Jenkins流水线项目的配置页面,在"构建环境"部分,确认你已经选择了正确的Java版本。选择你在步骤1中配置的Java 17路径作为JDK。 3. 清理并重新构建:重新触发或手动执行Jenkins流水线构建,并查看是否成功构建Java 17的代码。 如果上述步骤仍然无法解决问题,你还可以尝试以下几个方法: - 在Jenkins流水线中显式指定Java路径:在Jenkins流水线构建脚本中,使用`tool`指令显式指定Java 17的路径,例如: ```groovy pipeline { agent any tools { jdk 'Java17' } stages { // 构建阶段 stage('Build') { steps { // 构建步骤 } } } } ``` 在上述示例中,我们使用了`jdk 'Java17'`来指定Java 17的路径。确保在Jenkins服务器上配置了与`Java17`相对应的JDK。 - 检查构建脚本中的其他配置:检查你的构建脚本是否有其他配置或限制,可能会影响流水线Java版本。例如,某些插件或步骤可能会强制使用特定的Java版本。确保将这些配置与Java 17兼容。 希望以上方法能够帮助你解决问题并成功构建Java 17的代码。如果问题仍然存在,请提供更多信息,以便我们进一步帮助你。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值