Gradle 5 JUNit BOM 및 Spring Boot 잘못된 버전
그라들 5의 BOM(Bill of Materials) 기능을 사용하고 있습니다.JUNIT 5 의존성에 대해 이렇게 설명합니다.
testImplementation(enforcedPlatform("org.junit:junit-bom:5.4.0")) // JUnit 5 BOM
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testImplementation("org.junit.jupiter:junit-jupiter-params")
제 가정은 BOM을 제공하는 것이 종속성의 버전을 해결할 것이라는 것입니다.5.4.0
. 하지만 그들은 다음과 같이 결심합니다.5.1.1
. 왜 그런지 잘 모르겠습니다. (저도 부탁드립니다.enforcedPlatform()
지정된 버전을 잠그다)
JUNIT 5의 BOM을 검사해보니 모두org.junit.jupiter
종속성은 버전과 함께 나열됩니다.5.4.0
(프로젝트에서 5.1.1항 참조) 및 모두org.junit.platform
종속성은 버전과 함께 나열됩니다.1.4.0
프로젝트에서 올바르게 해결됩니다.
저는 제가 무엇을 놓치고 있는지 확실하지 않고 여기에 도움을 받기를 희망하고 있었습니다.감사합니다!
편집:
Sormuras response를 사용하고 모든 BOM을 상단으로 이동했습니다.dependencies {}
블록이 있지만 여전히 버전을 얻지 못하고 있습니다.5.4.0
. 그러면 제가 사용하는 Gradle Spring Dependency Management plugin에서 나오는 것이 아닌가 해서 코멘트를 해보니 Junit 5.4.0 버전이 나왔습니다.Gradle Spring Dependency Management 플러그인에서 Junit가 들어오는 것을 비활성화하려면 어떻게 해야 합니까?
마지막:
Spring Boot Dependencies BOM을 직접 사용하고 Gradle 플러그인을 제거하기로 결정했습니다.
implementation(platform("org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE"))
BOM 파일을 사용할 수 없는 그래들 5 이전 버전의 그래들을 위해 플러그인이 만들어졌다고 생각합니다.이제 BOM 지원을 통해 직접 포함할 수 있습니다.이런 식으로 JUNIT의 내 버전은 내가 명시한 대로입니다.enforcedPlatform()
막다른 골목
아래 Sam Brannen의 답변을 수락한 이유는 그가 어떻게 문제가 발생하고 무엇이 해결되는지 잘 설명해 주고 있으며, 이전 버전의 Gradle을 사용하는 사람들에게 적합하다고 생각하기 때문입니다.
Gradle Spring Dependency Management 플러그인에서 Junit가 들어오는 것을 비활성화하려면 어떻게 해야 합니까?
우선 Spring의 의존성 관리 플러그인을 사용하는 경우에는junit-bom
이는 해당 종속성을 중복적으로(그리고 잠재적으로 상충되는) 관리하는 결과를 초래하기 때문입니다.
또한 Spring의 종속성 관리 플러그인을 사용하고 관리 버전을 재정의하려면 플러그인이 사용하는 BOM에 정의된 버전의 정확한 이름을 재정의하여 이를 수행해야 합니다.
이것은 그레이들과 메이븐의 스프링 부츠에 기록되어 있습니다.
JUNIT 목성 버전의 이름은 "Junit-Jupiter"입니다.버전."Spring Boot 2.1.2에 대한 모든 관리 버전의 이름은 여기에서 확인할 수 있습니다.
그래들에서는 다음과 같이 덮어씁니다.
ext['junit-jupiter.version'] = '5.4.0'
.
제가 여기서 정확히 그렇게 했음을 알 수 있습니다.
메이븐을 사용하면 다음과 같이 무시할 수 있습니다.
<properties>
<junit-jupiter.version>5.4.0</junit-jupiter.version>
</properties>
자세한 배경 정보는 여기 https://docs.spring.io/platform/docs/current/reference/html/getting-started-overriding-versions.html 에서 확인할 수 있습니다.
5 5.4.0 을 했고 했습니다 을 의 에 했습니다 을 의 에 을 했고 org.junit:junit-jupiter
그래들 파일도 간소화해야 합니다.
testImplementation(enforcedPlatform("org.junit:junit-bom:5.4.0")) // JUnit 5 BOM
testImplementation("org.junit.jupiter:junit-jupiter")
JUNit을 지칭하는 다른 BOM보다 JUNit의 BOM을 먼저 포함해야 합니다.첫 번째 BOM은 나중에 생성된 모든 아티팩트의 버전을 획득하고 잠급니다.
메이븐 및 스프링 부트를 사용하는 유사한 설정에 대해서는 이 문제를 참조하십시오. https://github.com/sormuras/junit-platform-maven-plugin/issues/29#issuecomment-456958188
언급URL : https://stackoverflow.com/questions/54598484/gradle-5-junit-bom-and-spring-boot-incorrect-versions
'programing' 카테고리의 다른 글
MySQL 오류:최대 열 크기는 767바이트입니다. (0) | 2023.09.14 |
---|---|
MySQL 데이터베이스에서 이미지를 검색하고 HTML 태그에 표시하는 방법 (0) | 2023.09.14 |
플로팅 요소의 중심을 어떻게 맞추나요? (0) | 2023.09.09 |
Informix에서 Oracle로 여러 테이블을 포함하는 왼쪽 외부 조인 다시 쓰기 (0) | 2023.09.09 |
Twitter 부트스트랩 텍스트 상자 글로우 및 섀도 재정의 (0) | 2023.09.09 |