使用com.jfrog.artifactory插件时找不到任何方法

时间:2015-10-08 00:01:00

标签: java gradle artifactory

我是新手,请原谅我的无知。有一个基本的gradle项目。 运行./gradlew任务时出现以下错误

FAILURE: Build failed with an exception.

* Where:
Build file '<path>/build.gradle' line: 17

* What went wrong:
> No signature of method: build_204u1riu5haork78eb2ib9dc1t$_run_closure2.id() is applicable for argument types: (java.lang.String) values: [com.jfrog.artifactory]
  Possible solutions: is(java.lang.Object), is(java.lang.Object), find(), find(), find(groovy.lang.Closure), find(groovy.lang.Closure)

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

BUILD FAILED

以下是我的build.gradle

buildscript {
    repositories {
        maven {
            url '<URL>'
            credentials {
                username = "<USERNAME>"
                password = "<PASSWORD>"
            }
        }
    }
    dependencies {
    classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.0.9')
    }
}

plugins {
   id "com.jfrog.artifactory" version "3.0.1"   //<=== LINE 17
}

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
apply plugin: 'application'

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

artifactory {
    contextUrl = "<URL>"
    publish {
        repository {
            repoKey = 'libs-snapshot-local'
            username = "<USERNAME>"
            password = "<PASSWORD>"
            maven = true
        }
        defaults {
            publications('mavenJava')
        }
    }
    resolve {
        repository {
            repoKey = 'libs-all'
            username = "<USERNAME>"
            password = "<PASSWORD>"
            maven = true

        }
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.7'
    compile 'org.slf4j:slf4j-simple:1.7.7'

    compile 'com.amazonaws:aws-java-sdk:1.9.38'

    testCompile 'junit:junit:4.11'
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.2'
}

我确信这是一个非常基本的问题,这就是为什么当我搜索时,没有找到任何解决方案。如果有人能指出我正确的方向或分享任何以前相关问题的链接,那就太好了。

2 个答案:

答案 0 :(得分:2)

如果使用Gradle 1.x构建,可能会发生这种情况。 Gradle plugins DSL是在Gradle 2.1中引入的,旧Gradle版本不支持 您已将gradle wrapper配置为使用Gradle 2.2,但您需要确保使用gradlew脚本而不是gradle

答案 1 :(得分:1)

另一种可能性是,如果项目中有任何模块具有较低版本的gradle工具
例如我的app模块在buildcript中有以下构建工具作为依赖
classpath&#39; com.android.tools.build:gradle:2.3.2&#39;

但我有另一个带有以下构建工具的模块作为buildscript中的依赖项

classpath&#39; com.android.tools.build:gradle:2.2.0&#39;

在这种情况下我得到了以下错误

  

没有方法签名:org.jfrog.gradle.plugin.artifactory.extractor.listener.ProjectsEvaluatedBuildListener $ _projectsEvaluated_closure1.doCall()适用于参数类型:(org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask_Decorated)价值观:[任务&#39;:uid:artifactoryPublish&#39;]


然后改变 classpath&#39; com.android.tools.build:gradle:2.2.0&#39; to classpath&#39; com.android.tools.build:gradle:2.3.2&#39;一切都运作良好。