Gradle 인수에 대한 compile () 메서드를 찾을 수 없습니다.


95

이 솔루션을 너무 오랫동안 둘러 보았고 내가 그것을 놓쳤거나 그냥 잘못 입력했는지 확실하지 않지만 Gradle 스크립트가 컴파일되지 않습니다. 저는 Gradle로 마이그레이션하고 있으며 매우 새롭습니다. 나는 의존성 관리를 위해 Maven을 사용하는 데 매우 익숙하지만 Gradle은 현재 가장 잘 보입니다. 이 코드 스 니펫 실행에서 :

dependencies {
  compile group: 'org.bukkit', name: 'bukkit', version: '1.7.9-R0.1-SNAPSHOT'
  compile('io.ibj:MattLib:1.1-SNAPSHOT') {
    exclude group: 'de.bananaco'
    exclude 'net.milkbowl:vault:1.2.27'
  }
  compile group: 'net.citizensnpcs', name: 'citizens', version: '2.0.12'
  compile group: 'com.sk89q', name: 'worldedit', version: '5.6.1'
  compile group: 'com.sk89q', name: 'worldguard', version: '5.9'
  compile group: 'net.milkbowl', name: 'vault', version: '1.2.12'
  compile fileTree(dir: 'libs', includes: ['*.jar'])
}

참고 : Java, maven, nexus, shadow 및 rebel 플러그인이 적용되어 있습니다.

Gradle 작업을 실행할 때 다음 오류가 발생합니다.

Could not find method compile() for arguments [[io.ibj:MattLib:1.1-SNAPSHOT], build_1b5iofu9r9krp7o8mme0dqo9l$_run_closure2_closure8@66fb45e5] on root project 'project'

내 프로젝트에서 "MattLib"종속성을 제거하고 다음과 같이 다시 삽입하면

compile 'io.ibj:MattLib:1.1-SNAPSHOT'

스크립트가 완료되었지만 종속성 문제가 있습니다. 여기에서 읽었습니다.

dependencies {
  compile("org.gradle.test.excludes:api:1.0") {
    exclude module: 'shared'
  }
}

(Gradle 매뉴얼의 50 장에서 http://www.gradle.org/docs/current/userguide/dependency_management.html )

내가 가진 것이 작동해야하지만 왜 작동하지 않는지 혼란 스럽습니다.

gradle --version 출력 :

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy:          2.2.0
JVM:          1.8.0_05 (Oracle Corporation 25.5-b02)
OS:           Windows 7 6.1 amd64

이견있는 사람?


이걸 알아 냈어? 나는 똑같은 문제가 있습니다. 토론 포럼의 누군가가 컴파일 블록 안에 exclude를 넣을 것을 권장했지만 그렇게하려고 할 때마다 정확한 오류가 발생합니다.
Trejkaz

답변:


7

그것은해야한다 exclude module: 'net.milkbowl:vault:1.2.27'(추가 기능 module:에 대한 설명서에 설명 된대로) DependencyHandler에 링크 http://www.gradle.org/docs/current/javadoc/org/gradle/api/Project.html#dependencies(groovy.lang.Closure) 때문에 ModuleDependency.exclude(java.util.Map)방법은 익숙한.


이 모든 시간을 돌아 보면 이것이 내가 겪었던 가장 가능성이 높은 문제입니다. 나는 그 이후로 분명히 멀리 나아 갔지만이 질문이 여전히 열려 있다는 알림을받은 후 가장 가까운 것처럼 보이기 때문에 이것을 '정답'답으로 표시하는 것이 유일한 적절하다고 생각합니다.
Ichbinjoe

167

올바른 build.gradle파일을 편집하고 있는지 확인하십시오 . android/build.gradle대신 편집 할 때이 오류가 발생했습니다 android/app/build.gradle.


7
나도 잘못된 장소에 있었다. 도와 주셔서 감사합니다!
igorrmotta

3
당신은 잘못된 장소를 의미합니까? 어떤 gradle 파일을 편집해야합니까?
guru_001 2016

@ guru_001 당신은 안드로이드 / 응용 프로그램 / build.gradle 편집을 해야하는
스리 칸스 Karumanaghat

1
우수한. 나와 gradle을 처음 사용하는 다른 사람들에게 매우 유용합니다.
CowZow

1
왜 F .. 그들은 그것을 같은 이름을 붙였습니까 ??
Developerium

103

compileA는 configuration일반적으로 플러그인 (대부분 자바 플러그인)에 의해 도입되는 그 구성에 대한 자세한 내용은 Gradle을 사용 설명서에서보세요. 지금은 빌드 스크립트 위에 자바 플러그인을 추가하면 트릭이됩니다.

apply plugin:'java'

이 정의가가는 순서는 빌드에 영향을 미치는 것 같습니다. 제 경우에는 jar () 태그로 문제에 직면했고 Rene의 메모가 문제를 해결하는 데 도움이되었습니다.
vsrikarunyan

코 틀린와 함께 작업하는 동안, 코 틀린 플러그인을 적용했다apply plugin: "kotlin"
prayagupd

내 구문 설탕은 플러그인 {id 'java'}
였습니다.

8

제 경우에는 모든 compile진술이 어떻게 든 한 줄로 정렬되어 있습니다. 개별 줄로 구분하면 문제가 해결되었습니다.


이것은 Android Studio에서 계속 발생합니다!
Brett

우리가 모듈 설정에서 Gradle을 속성을 수정하면 예 일어날 대화
란 지트 쿠마르

진실. 젠장 gradle.build 파일 생성기는 일부 조작 후 종속성 블록에서 줄 바꿈 구분 기호를 제거합니다.
Markus Marvell

오 정말? Google에 와서 무슨 버그인지, 내가 일어나서 실행 버튼을 눌렀을 때 내 모든 새 줄을 제거했습니다! 이 정말 똥 남자 ...
Pratik Jamariya

7

아래 단계가 도움이 될 것입니다.

프로젝트 수준 build.gradle에 종속성을 추가합니다 .

classpath 'com.google.gms:google-services:3.0.0'

앱 수준 build.gradle에 플러그인을 추가합니다 .

apply plugin: 'com.google.gms.google-services'

앱 수준 build.gradle :

dependencies {
        compile 'com.google.android.gms:play-services-auth:9.8.0'
}

1
이것이 질문과 무슨 관련이 있습니까?
aarnaut

0

잘못된 gradle 파일입니다. 오른쪽은 'app'폴더의 build.gradle입니다.


0

제 경우에는 작업을 수행하기 위해 연구의 어느 시점에서 gradle에 의해 생성 된 일부 파일을 제거해야했습니다. 그래서, 엉망진창 후 정리하고 잘 돌아갔습니다 ...

git 프로젝트에서이 문제가 발생한 경우 git status수정되지 않은 파일을 수행 하고 제거하십시오. (나에게 elasticsearch문제가있었습니다 plugins/analysis-icu).

Gradle Version : 5.1.1


0

기록을 위해 : 실수로 Preferences-> Build, Execution, Deployment-> Gradle-> 오프라인 작업 선택 취소 에서 실수로 오프라인 작업을 활성화 했지만 오류 메시지가 잘못되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.