Jenkins Gradle 使用包装器构建,使用 artifactory 插件

Cha*_*fot 0 plugins artifactory gradle jenkins-pipeline

有没有办法做到这一点?。想在 Artifactory 中发布 gradle .jar。我能够在 jenkins 中使用已安装的 maven 版本进行 maven 构建,并成功发布了 artifactory 中的战争,但现在开发人员希望使用 gradle 包装器而不是 maven 进行 gradle 构建。使用此代码正常 Gradle 构建工作得很好。

stage('Clean Build') { 
        
                
        withGradle { // using gradle wrapper
            
            
            sh './gradlew clean build'
      }
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用 Artifactory 插件来实现它时,我不能。我越来越。

    [Pipeline] ArtifactoryGradleBuild
[api-build] $ /var/lib/jenkins/workspace/api-build/gradlew --init-script /var/lib/jenkins/workspace/api-build@tmp/artifactory/init-artifactory11329321758849387716gradle clean artifactoryPublish -b ./build.gradle
Starting a Gradle Daemon (subsequent builds will be faster)
FAILURE: Build failed with an exception.

* What went wrong:
Failed to create Jar file /var/lib/jenkins/.gradle/caches/jars-8/8535adf040d7c5fdb7fd6bc28bb0ef3f/ok.
> Prefix string "ok" too short: length must be at least 3

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
Run Code Online (Sandbox Code Playgroud)

这是管道代码:

node {
    def server  = Artifactory.server 'artifactory'
    def rtGradle = Artifactory.newGradleBuild()
    def buildInfo
    


    jdk = tool name: 'JDK11'
    //jdk = tool name: 'Java 8'
    env.JAVA_HOME = "${jdk}"
    
     stage('Get Code from Bitbucket') { 
        
                git branch: "${branch}", 
                credentialsId: 'jenkins',
                url: 'ssh://git@bitbucket.org/project1/api1'
                
        sh "chmod 755 gradlew"      
    }
    
    stage('Artifactory Configuration') {
       
        // Set Artifactory repositories for dependencies resolution and artifacts deployment.
        rtGradle.deployer server: server, repo: 'myrepo'
        rtGradle.useWrapper = true
        
                
    }

     stage('Gradle build') {

     withGradle {   

       
 buildInfo = rtGradle.run rootDir: ".", buildFile: 'build.gradle', tasks: 'clean artifactoryPublish'

     }
    
    }


stage('Publish build info') {
       
       server.publishBuildInfo buildInfo
    }
    

}
Run Code Online (Sandbox Code Playgroud)

有人能够完成这项工作吗?先感谢您。

小智 6

这个问题是重复和也有一个公关修正为描述错误的根本原因。作为临时解决方法,请使用 Gradle V6.5.1 或更低版本。