【问题标题】:Jenkins Gradle build with wrapper, using artifactory pluginJenkins Gradle 用 wrapper 构建,使用 artifactory 插件
【发布时间】:2021-02-02 11:49:53
【问题描述】:

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

stage('Clean Build') { 
        
                
        withGradle { // using gradle wrapper
            
            
            sh './gradlew clean build'
      }
}

但是当我尝试使用 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

这是管道代码:

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
    }
    

}

有人能够完成这项工作吗?提前谢谢你。

【问题讨论】:

    标签: gradle plugins jenkins-pipeline artifactory


    【解决方案1】:

    此问题与this 重复,还有一个PR 修复程序描述了该错误的根本原因。 作为临时解决方法,请使用 Gradle V6.5.1 或更低版本。

    【讨论】:

    • 是的...不知道。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多