[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

작성자

Posted by 드리머즈

관련 글

댓글 영역