2016-11-07 16 views
0

私はbambooからjenkinsにいくつかのビルドを移動し、アプリケーションをビルドするために同じgradleビルドスクリプトを使用しています。 artifactoryをオフにすると、ビルドが成功しているが、それをオンにするときに失敗します。Jenkins/Artifactory - メソッドcreate()を見つけることができません。

09:22:08.568 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 
09:22:08.569 [ERROR] [org.gradle.BuildExceptionReporter] 
09:22:08.569 [ERROR] [org.gradle.BuildExceptionReporter] * Where: 
09:22:08.569 [ERROR] [org.gradle.BuildExceptionReporter] Initialization script '/tmp/init-artifactory2218166479825929225gradle' line: 20 
09:22:08.570 [ERROR] [org.gradle.BuildExceptionReporter] 
09:22:08.570 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 
09:22:08.570 [ERROR] [org.gradle.BuildExceptionReporter] Failed to notify build listener. 
09:22:08.570 [ERROR] [org.gradle.BuildExceptionReporter] > Failed to notify build listener. 
09:22:08.571 [ERROR] [org.gradle.BuildExceptionReporter] > Could not find method create() for arguments [artifactoryPublish, class org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask] on task set. 

初期化スクリプトがartifactoryプラグインによって作成されており、以下のようになります。私たちは、Gradleのを使用している

import org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin 
import org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask 

initscript { 
    dependencies { 
     classpath fileTree('/var/lib/jenkins/cache/artifactory-plugin/2.7.2') 
    } 
} 

addListener(new BuildInfoPluginListener()) 
class BuildInfoPluginListener extends BuildAdapter { 

    def void projectsLoaded(Gradle gradle) { 
     gradle.startParameter.getProjectProperties().put("build.start", Long.toString(System.currentTimeMillis())) 
     Project root = gradle.getRootProject() 
     root.logger.debug("Artifactory plugin: projectsEvaluated: ${root.name}") 
     if (!"buildSrc".equals(root.name)) { 
      root.allprojects { 
       apply { 
        apply plugin: ArtifactoryPlugin 
       } 
      } 
     } 

     // Set the "archives" configuration to all Artifactory tasks. 
     for (Project p : root.getAllprojects()) { 
      Task t = p.getTasks().findByName(ArtifactoryTask.BUILD_INFO_TASK_NAME) 
      if (t != null) { 
       ArtifactoryTask task = (ArtifactoryTask)t 
       task.setAddArchivesConfigToTask(true) 
      } 
     } 
    } 
} 

1.5このプロジェクトでは、バージョンはbuild.gradleで宣言されています。

Build.gradle:

apply plugin: 'groovy' 
apply from: 'scripts/wrapper.gradle' 
gradleVersion='1.5' 

group = 'com.company.build' 

task testBuildSingle(type: GradleBuild) { 
    buildFile = 'test/single/build.gradle' 
    tasks = ['clean', 'build'] 
} 

task testBuildMulti(type: GradleBuild) { 
    buildFile = 'test/multi/build.gradle' 
    tasks = ['clean', 'build'] 
} 

test.dependsOn('testBuildSingle') 

task dist(type: Copy) { 
    from 'scripts' 
    into("$buildDir/scripts") 
    eachFile({ 
     def file = file("scripts/${it.getPath()}") 
     println file 
     artifacts.add('archives', file) 
    }) 
} 

dist.dependsOn('test') 
+0

「Jenkins Artifactory Plugin」ページ(https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=57182305)からもわかるように、 'Artifactory Plugin 2.7.2'には' Gradle 1.15'が必要です。この問題は、バージョンの非互換性によって発生する可能性があります。 –

+0

私はグラデル1.25プラグインを持っていて、ビルドスクリプトでは別のgradle vをビルドしようとしましたが、変更はありませんでした。 – James

+0

'gradle.build'を共有できますか? –

答えて

0

あなたはArtifactoryプラグインの最新バージョンを使用していて、ビルド情報-抽出-のGradleが、あなたのGradleのバージョンが古いです。最新バージョンのgradleを使用してください3.1

0

グレードスクリプトが既に "com.jfrog.artifactory"プラグインを適用している場合、Jenkinsジョブでは、 "Artifactoryプラグインを使用します"オプションを設定してJenkinsが初期化スクリプトを追加します。 Bambooには、Gradle Artifactoryのタスクと同じチェックボックスがあります。

関連する問題