source

Gradle 인수에 대한 메서드 컴파일()을 찾을 수 없습니다.

goodcode 2022. 8. 31. 22:42
반응형

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'
  }
}

(그래들 매뉴얼 50장부터)

내가 가진 게 효과가 있어야 하는데 왜 안 되는지 모르겠어.

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

주의:compile,runtime,testCompile,그리고.testRuntimeJava 플러그인에 의해 도입된 구성은 Gradle 4.10(2018년 8월 27일) 이후 폐지되어 Gradle 7.0(2021년 4월 9일)에 최종적으로 삭제되었습니다.

상기의 설정은, 다음과 같이 치환할 필요가 있습니다.implementation,runtimeOnly,testImplementation,그리고.testRuntimeOnly,각각 다음과 같다.

올바른 편집 중인지 확인합니다.build.gradle파일. 편집 시 이 오류가 발생했습니다.android/build.gradle보다는android/app/build.gradle.

compile는 입니다.configuration보통 플러그인(java 플러그인)에 의해 도입됩니다.구성에 대한 자세한 내용은 gradle userguide를 참조하십시오.일단 빌드 스크립트 위에 Java 플러그인을 추가하면 다음과 같은 트릭을 실행할 수 있습니다.

apply plugin:'java'

그럴 것 같네요.exclude module: 'net.milkbowl:vault:1.2.27'(추가하다module:의 매뉴얼에 기재되어 있는 바와 같이DependencyHandler 여기서부터 연결되다ModuleDependency.exclude(java.util.Map)메서드가 사용됩니다.

저 같은 경우에는...compile문장은 어떻게든 한 줄에 정리되어 있습니다.개별 행으로 분리하면 문제가 해결되었습니다.

프로젝트 레벨에 의존 관계 추가 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'
}

제 경우 gradle 버전이 일치하지 않는 것이 문제였습니다.mac에 gradle을 설치했습니다.

brew install gradle

그리고 7.0이라는 최신 그라들을 받았다.

그러나 프로젝트 리포로 복제하여 gradle taks를 실행했을 때 아래 오류로 인해 실패하였습니다.

* What went wrong:
A problem occurred evaluating root project 'digital-engineering-course'.
> Could not find method compile() for arguments [org.springframework.boot:spring-boot-starter-web, build_bzpgd6h32w4m8umtmgs76ewog$_run_closure3$_closure8@b55ca3] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

build.gradle파일은 규칙적인 의존관계가 있기 때문에 나에게는 매우 평범해 보였다.

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web") {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    } 
    compile("org.springframework.boot:spring-boot-starter-data-mongodb")    

버젼의 미스매치가 문제라는 것을 이해하는 데 시간이 걸렸습니다.Gradle은 메서드를 찾을 수 없습니다.compile()배시 때 gradle 7.0을 썼거든요

이 8로 로 되어 , 또 다른 로운 문제로 그래들랩 4.8이 고장났습니다).Could not find or load main class org.gradle.wrapper.GradleWrapperMain(관심있는 분은 아래를 봐주세요)

컴파일 실패의 이유는 Java 플러그인에 의해 도입컴파일, 런타임, testCompile testRuntime 설정이 Gradle 4.10 이후 폐지되어 Gradle 7.0에서 삭제되었기 때문입니다.

그래서 나는 문제를 해결하기 위해 gradle의 낮은 버전을 설치해야 했다.gradle의 여러 버전을 관리하려면 sdkman(이전에는 gvm)을 사용합니다.

MacOs/Linux에서의 설치는 다음과 같이 간단합니다.

curl -s "https://get.sdkman.io" | bash

사용 후

sdk list gradle

사용 가능한 모든 버전의 그래들이 나열됩니다.필요에 따라서 인스톨 해 주세요.예를 들어

sdk install gradle 4.84.됩니다). (4.8이 선택됩니다.)sdk use gradle 4.8 설치되어 ,

이제 그 ★★★★★★★★★★★★★★★★★★★★.build.gradle을 사용하다

제 경우, 작업을 수행하기 위해 gradle에 의해 생성된 파일을 삭제해야 했습니다.그래서 정리정돈하고 잘 돌아갔는데...

이 git을 합니다.git status되지 않은 파일을elasticsearchplugins/analysis-icu를 참조해 주세요.

Gradle Version: 5.1.1

참고로:[ Preferences ]-> [ Build ], [Execution ], [Deployment]-> [ Gradle ]-> [ Offline Work ]의 오프 라인으로 오프라인 작업을 유효하게 했습니다만, 에러 메세지가 잘못 표시됩니다.

만 요.compileimplementation:

예:

dependencies {
  compile group: 'org.bukkit', name: 'bukkit', version: '1.7.9-R0.1-SNAPSHOT'
}

다음과 같습니다.

dependencies {
  implementation group: 'org.bukkit', name: 'bukkit', version: '1.7.9-R0.1-SNAPSHOT'
}

언급URL : https://stackoverflow.com/questions/23796404/could-not-find-method-compile-for-arguments-gradle

반응형