我是新手,请原谅我的无知。有一个基本的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'
}
我确信这是一个非常基本的问题,这就是为什么当我搜索时,没有找到任何解决方案。如果有人能指出我正确的方向或分享任何以前相关问题的链接,那就太好了。
答案 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;一切都运作良好。