[gradle] 라이브러리 의존성 추적하기
프로그래밍/서버2023. 12. 14. 15:33
그래들을 사용하다보면 라이브러리가 어떤 디펜던시에 의해 생겼는지 알기가 어려워서 곤란한 적이 많았다.
인터넷 검색 중에 그 방법을 찾았다~!!
아래와 같이 사용하면 된다!
./gradlew dependencyInsight --dependency "junit:junit" --configuration "testCompileClasspath"
위의 예제는 테스트 환경에서 junit 라이브러리가 어디서 가져오고 있는지를 알아내는 명령어다.
나는 Junit5를 사용하려고 하는데 Junit4가 포함되어 있어서 그 원인을 찾고 싶었다.
결과는 아래와 같은 형식으로 나온다.
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
> Task :dependencyInsight
junit:junit:4.13.2 (selected by rule)
variant "compile" [
org.gradle.status = release (not requested)
org.gradle.usage = java-api
org.gradle.libraryelements = jar (compatible with: classes)
org.gradle.category = library
Requested attributes not found in the selected variant:
org.gradle.dependency.bundling = external
org.gradle.jvm.environment = standard-jvm
org.gradle.jvm.version = 17
]
junit:junit:4.10 -> 4.13.2
\--- com.googlecode.json-simple:json-simple:1.1.1
\--- testCompileClasspath
org.junit:junit-bom:5.9.1
variant "apiElements" [
org.gradle.category = platform
org.gradle.usage = java-api
org.gradle.status = release (not requested)
Requested attributes not found in the selected variant:
org.gradle.dependency.bundling = external
org.gradle.jvm.environment = standard-jvm
org.gradle.libraryelements = classes
org.gradle.jvm.version = 17
]
org.junit:junit-bom:5.9.1
+--- org.junit.jupiter:junit-jupiter:5.9.1
| +--- org.springframework.boot:spring-boot-starter-test:3.0.1
| | \--- testCompileClasspath (requested org.springframework.boot:spring-boot-starter-test)
| \--- org.junit:junit-bom:5.9.1 (*)
+--- org.junit.jupiter:junit-jupiter-api:5.9.1
| +--- org.junit.jupiter:junit-jupiter-params:5.9.1
| | +--- org.junit:junit-bom:5.9.1 (*)
| | \--- org.junit.jupiter:junit-jupiter:5.9.1 (*)
| +--- org.junit:junit-bom:5.9.1 (*)
| \--- org.junit.jupiter:junit-jupiter:5.9.1 (*)
+--- org.junit.jupiter:junit-jupiter-params:5.9.1 (*)
\--- org.junit.platform:junit-platform-commons:1.9.1
+--- org.junit.jupiter:junit-jupiter-api:5.9.1 (*)
\--- org.junit:junit-bom:5.9.1 (*)
(*) - dependencies omitted (listed previously)
A web-based, searchable dependency report is available by adding the --scan option.
BUILD SUCCESSFUL in 8s
1 actionable task: 1 executed
그리고 위를 근거로
implementation('com.googlecode.json-simple:json-simple:1.1.1') {
exclude group: 'junit', module: 'junit' // [231214] junit4 버전 제외
}
그래들을 수정했다
출처: https://dev.to/art_ptushkin/how-to-properly-ignore-junit-4-in-gradle-and-maven-3o82
댓글 영역