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.