작성
·
106
1
java 버전17.0.9이고 springboot 버전은 3.2.10-SNAPSHOT 입니다.
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
build.gradle 파일에 로그 관련 부분 추가하니 아래와 같이 오류가 나는데 이유를 모르겠습니다.
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/settings/building/SettingsBuildingRequest
at org.gradle.api.internal.artifacts.DependencyManagementBuildScopeServices.createMavenSettingsProvider(DependencyManagementBuildScopeServices.java:289)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:35)
at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:916)
답변 1
1
안녕하세요. 닉네임_한글 가능님, 공식 서포터즈 OMG입니다.
아래 build.gradle을 복사하여 확인해보시겠어요?
부트 버전은 혹시 몰라서 스냅샷 아닌 버전으로 했습니다 😀
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.9'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'study'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage’, module: ‘junit-vintage-engine'
}
//Querydsl 추가
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
tasks.named('test') {
useJUnitPlatform()
}
build.gradle을 수정하면 우측 상단의 코끼리 아이콘을 클릭해주세요.
감사합니다.
기존 코드와 프로젝트를 그대로 둔 채 새로 프로젝트를 생성해주세요.
그리고 build.gradle만 복사하여 위 과정을 진행해주세요.
빌드 시 문제가 없다면 기존 프로젝트의 코드만 복사해와서 확인해주세요 😀
해결이 안된다면 댓글 남겨주세요 ^^
새롭게 프로젝트 생성해서 소스코드 입력없이 build.gradle만 변경했는데, 여전히 증상은 똑같습니다. idea log도 아래와 같이 나왔습니다.
2024-08-31 15:25:40,030 [ 102951] INFO - #o.j.p.g.s.e.GradleExecutionHelper - Passing command-line to Gradle Tooling API: --init-script C:\Users\seong\AppData\Local\Temp\ijIdeaPluginConfigurator1.gradle --init-script C:\Users\seong\AppData\Local\Temp\ijMapper1.gradle -Didea.gradle.download.sources=false -Didea.sync.active=true -Didea.resolveSourceSetDependencies=true -Porg.gradle.kotlin.dsl.provider.cid=56634029799400 -Pkotlin.mpp.enableIntransitiveMetadataConfiguration=true --init-script C:\Users\seong\AppData\Local\Temp\ijInit1.gradle -Didea.active=true -Didea.version=2024.1.1 -Didea.vendor.name=JetBrains
2024-08-31 15:25:40,406 [ 103327] INFO - #o.j.p.g.s.p.GradleProjectResolver - Gradle project resolve error
org.gradle.tooling.BuildActionFailureException: The supplied phased action failed with an exception.
at org.gradle.tooling.internal.consumer.connection.PhasedActionAwareConsumerConnection.run(PhasedActionAwareConsumerConnection.java:58)
at org.gradle.tooling.internal.consumer.connection.ParameterValidatingConsumerConnection.run(ParameterValidatingConsumerConnection.java:62)
................................................
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: org.gradle.api.reflect.ObjectInstantiationException: Could not create an instance of type org.gradle.api.internal.initialization.DefaultScriptHandler.
at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:69)
at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:55)
at org.gradle.api.internal.model.DefaultObjectFactory.newInstance(DefaultObjectFactory.java:92)
................................................
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/settings/io/SettingsReader
at org.gradle.api.internal.artifacts.DependencyManagementBuildScopeServices.createMavenSettingsProvider(DependencyManagementBuildScopeServices.java:289)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
................................................
$DefaultDependencyResolutionServices.getDependencyLockingHandler(DefaultDependencyManagementServices.java:635)
at org.gradle.api.internal.initialization.DefaultScriptHandler.<init>(DefaultScriptHandler.java:81)
at org.gradle.api.internal.initialization.DefaultScriptHandler_Decorated.<init>(Unknown Source)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at org.gradle.internal.instantiation.generator.AsmBackedClassGenerator$InvokeConstructorStrategy.newInstance(AsmBackedClassGenerator.java:2105)
at org.gradle.internal.instantiation.generator.AbstractClassGenerator$GeneratedClassImpl$GeneratedConstructorImpl.newInstance(AbstractClassGenerator.java:528)
at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:64)
... 156 more
Caused by: java.lang.ClassNotFoundException: org.apache.maven.settings.io.SettingsReader
at org.gradle.internal.classloader.TransformingClassLoader.findClass(TransformingClassLoader.java:52)
... 210 more
2024-08-31 15:25:40,459 [ 103380] INFO - #o.j.p.g.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk-17
2024-08-31 15:25:40,485 [ 103406] INFO - #o.j.p.g.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk-17
캐시 삭제 확인이 필요할 것 같아요 😀 아래 3가지를 진행해서 확인하신 후 결과를 알려주시겠어요?
(1) implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' 추가 전에는 문제가 없었는데 추가하고 나서 발생한 문제가 맞을까요? 문제 발생 상황을 조금 더 자세히 남겨주시면 확인에 도움이 됩니다.
(2) Gradle 캐시 삭제를 진행해주세요.
아래 O
로 표시한 터미널 창을 열고 아래 명령어를 입력해주세요.
맥) ./gradlew clean build --refresh-dependencies
윈도우) gradlew clean build --refresh-dependencies
(3) 인텔리제이 캐시 삭제
Invalidate Caches... > Invalidate and Restart
그냥 다른이름의 new project를 생성해도 아래와 같은 동일한 에러가 나네요.
Unable to load class 'org.apache.maven.settings.building.SettingsBuildingRequest'.
This is an unexpected error. Please file a bug containing the idea.log file.
그레이들 그루비로 생성했는데, idea 로그상에는 아래와 같이 코틀린 셋팅 부분의 로그가 찍히는데 프로젝트가 제대로 생성된것이 맞는건가요?
Caused by: java.lang.ClassNotFoundException: org.apache.maven.settings.building.SettingsBuildingRequest
at org.gradle.internal.classloader.TransformingClassLoader.findClass(TransformingClassLoader.java:52)
... 210 more
2024-08-31 15:51:00,377 [ 130520] INFO - #o.j.p.g.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk-17
2024-08-31 15:51:00,393 [ 130536] INFO - #o.j.p.g.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk-17
2024-08-31 15:51:00,397 [ 130540] INFO - #o.j.k.i.script - [KOTLIN_SCRIPTING] Loading script definitions: classes = [org.gradle.kotlin.dsl.KotlinInitScript], classpath = [C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-core-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-core-api-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-extensions-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-shared-runtime-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-tooling-models-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\kotlin-stdlib-1.9.22.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\kotlin-compiler-embeddable-1.9.22.jar]
2024-08-31 15:51:00,430 [ 130573] INFO - #o.j.k.i.script - [KOTLIN_SCRIPTING] Loaded definitions: classes = [org.gradle.kotlin.dsl.KotlinInitScript], definitions = [KotlinInitScript]
2024-08-31 15:51:00,435 [ 130578] INFO - #o.j.p.g.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk-17
2024-08-31 15:51:00,438 [ 130581] INFO - #o.j.k.i.script - [KOTLIN_SCRIPTING] Loading script definitions: classes = [org.gradle.kotlin.dsl.KotlinSettingsScript], classpath = [C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-core-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-core-api-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-extensions-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-shared-runtime-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-kotlin-dsl-tooling-models-8.8.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\kotlin-stdlib-1.9.22.jar, C:\Users\seong\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\kotlin-compiler-embeddable-1.9.22.jar]
start.spring.io에서 프로젝트를 생성하고 나서
인텔리제이에서 프로젝트를 열 때 정상적으로 동작하는 방법으로 열었는지 확인이 필요합니다.
프로젝트를 어떻게 실행했는지와 메시지 로그를 텍스트가 아닌 화면 캡쳐로 남겨주시겠어요?
실행한 과정에 대한 화면 정보
와 과정
에 대한 확인이 필요 할 것 같아요.
저 메시지가 나오는 과정을 확인 할 수 있게 캡쳐 부탁드립니다 ^^
남기신 프로젝트 생성 화면에서는 말씀하신대로 Kotlin이 출력될 요소가 아닌 항목들로 선택했기 때문에 Kotlin관련 메시지가 출력이 안되는게 맞을 것 같습니다.
그렇다면 프로젝트를 실행하고, Kotlin 관련 빌드 오류 메시지가 나오는 상황까지의 흐름을 확인해야 합니다 😀
캡쳐 화면 감사합니다 😀
관련해서 찾아보니 다음 링크와 비슷한 상황일 것으로 예상합니다.
https://medium.com/@minjeesong95/unable-to-load-class-org-gradle-api-logging-loglevel-bd06e0515ffb
프로젝트 혹은 실행중인 PC의 자바 세팅과 관련이 있을 것 같습니다.
Q1. PC에 자바가 설치되어 있을까요?
명령 프롬프트(CMD) 에서 java -version
명령을 입력한 화면의 캡쳐 결과를 남겨주시면 확인에 도움이 됩니다.
(위에 링크처럼 환경변수편집 창 의 화면도 같이 남겨주시면 더 도움이 됩니다.)
Q2.프로젝트 (인텔리제이) 내에서 자바 세팅 확인이 필요합니다.
다음 캡쳐 화면을 남겨주시겠어요?
인텔리제이에서 ctrl + alt + s
를 입력하여 설정창을 열고 검색란에 gradle 검색
Gradle JVM 확인
3.창을 닫고, ctrl + alt + shift + s
를 입력
Project Settings > Project의 SDK 확인
springboot 3.2.9 버전일 시
gradle dependency 충돌 때문에 제대로 빌드가 안되었네요.
gradle-wrapper.properties 파일에서 셋팅만 바꿨습니다.
해결되었습니다.
감사합니다.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
위의 dependency를 붙여 넣어도 똑같은 오류가 나네요.
---------------------------------------------------------------------------
Unable to load class 'org.apache.maven.settings.io.SettingsReader'.
This is an unexpected error. Please file a bug containing the idea.log file.
새로운 프로젝트를 만들어서 해야 하나요?