programing

inteliJ 스프링 부트 그래들 플러그인 3.0.0에서 일치하는 변형을 찾을 수 없습니다.

mailnote 2023. 7. 15. 10:26
반응형

inteliJ 스프링 부트 그래들 플러그인 3.0.0에서 일치하는 변형을 찾을 수 없습니다.

봄부트 Gradle 플러그인 버전 3.0.0을 사용하려고 합니다.다음은 build.gradle.kts 파일입니다.

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    id("org.springframework.boot") version "3.0.0"
    id("io.spring.dependency-management") version "1.1.0"
    kotlin("jvm") version "1.7.20"
    kotlin("plugin.spring") version "1.7.20"
    id("org.jlleitschuh.gradle.ktlint") version "11.0.0"
}

java.sourceCompatibility = JavaVersion.VERSION_17

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-r2dbc")
    implementation("org.springframework.boot:spring-boot-starter-webflux")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("io.projectreactor.kotlin:reactor-kotlin-extensions")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
    runtimeOnly("org.postgresql:postgresql")
    runtimeOnly("org.postgresql:r2dbc-postgresql")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
    testImplementation("io.projectreactor:reactor-test")
    jdbc("org.postgresql:postgresql:42.5.0")
}

tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs = listOf("-Xjsr305=strict")
        jvmTarget = "17"
    }
}

tasks.withType<Test> {
    useJUnitPlatform()
}

아래에 오류를 붙여넣고 있습니다.버전을 2.7.6으로 변경하면 오류가 사라지기 때문에 네트워크 문제가 아니라는 것을 알고 있습니다.

> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.0.
     Required by:
         project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.0
      > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.0 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.5.1' but:
          - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.0 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '7.5.1')

IntelliJ = > 기본 설정 = > 빌드, 실행, 배포 = > Gradle에서 Gradle JVM을 : Project SDK (17)로 설정해야 enter image description here했습니다.

2.7.6 및 2.7.1 스프링 부트 플러그인 버전이 왜 Gradle JVM이 Java 11로 설정되었을 때 작동했는지 잘 모르겠습니다… 스프링 부트 Gradle 플러그인 3.0.0이 더 엄격한 것 같습니다.

Spring Boot 시작 문서에서 -

Spring Boot 3.0.3에는 Java 17이 필요하며 Java 19까지 호환됩니다.

저의 경우 이미 Gradle JVM to: Project SDK(17)를 가지고 있었고 업데이트해야 했습니다.

java.sourceCompatibility = JavaVersion.VERSION_17

모듈에서도 마찬가지로build.gradle.kts

이전에 다음으로 설정되었습니다.JavaVersion.VERSION_11

Windows를 사용하는 저의 경우 문제는 JAVA_HOME이 여전히 17이 아닌 JDK 14를 가리키고 있다는 것이었습니다.

제 경우에도 프로젝트 SDK가 제대로 설정되었지만 이상하게도 IntelliJ는 모듈이 이를 존중하지 않을 것이라고 판단했습니다.모듈 설정을 확인했는데 다음과 같이 표시되었습니다.No SDK.

모듈 SDK를 업데이트하고 적용을 클릭합니다.문제가 사라졌습니다.

Module settings in IntelliJ - shows language level - Java 17

Module dependencies in IntelliJ - shows Module SDK - No SDK

@mag-musik의 포인터가 올바른 장소에서 확인하는 데 도움이 되었습니다.

언급URL : https://stackoverflow.com/questions/74890323/in-intellij-spring-boot-gradle-plugin-3-0-0-no-matching-variant-found

반응형