"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Gradle에서 특정 전이적 종속성을 제외하는 방법은 무엇입니까?

Gradle에서 특정 전이적 종속성을 제외하는 방법은 무엇입니까?

2024-11-06에 게시됨
검색:562

How to Exclude Specific Transitive Dependencies in Gradle?

Gradle에서 전이적 종속성 제외

Gradle에서 애플리케이션 플러그인을 사용하여 jar 파일을 생성할 때 다음과 같은 전이적 종속성이 발생할 수 있습니다. 제외하고 싶을 수도 있습니다. 이를 달성하기 위해 제외 방법을 사용할 수 있습니다.

제외의 기본 동작

처음에는 org.slf4j:slf4j-의 모든 인스턴스를 제외하려는 시도가 이루어졌습니다. 다음 코드를 사용하는 log4j12:

configurations {
  runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}

그러나 이로 인해 slf4j-api.

제외 사용자 정의

를 포함한 모든

org.slf4j 아티팩트가 제외되었습니다.

제외를 구체화하기 위해 그룹 및 모듈 속성을 활용할 수 있습니다.

configurations {
  runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
}

이 접근 방식은 다른 slf4j 종속성에 영향을 주지 않고 org.slf4j:slf4j-log4j12만 성공적으로 제외합니다.

개별 종속성에서 제외

특정 종속성에 대해 제외가 필요한 경우 다음 구문을 사용할 수 있습니다.

dependencies {
  compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') {
    exclude group: "org.slf4j", module: "slf4j-log4j12"
  }
}

제외 메서드의 제한 사항

제외에 임의의 속성을 지정할 수 있지만 개별 종속성에서 제외할 때는 이것이 허용되지 않는다는 점에 유의하는 것이 중요합니다. 예를 들어 다음 코드는 실패합니다.

dependencies {
  compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') {
    exclude group: "org.slf4j", name: "slf4j-log4j12"
  }
}

다음 오류 메시지가 표시됩니다.

No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule

Gradle 모듈 이해

Gradle에서 모듈 속성은 Maven 이슈 ID에 해당합니다. 따라서 특정 Maven 아티팩트의 모듈을 확인하려면 해당 ArtifactId를 검사하세요. 예를 들어 Maven 아티팩트 org.slf4j:slf4j-log4j12에는 slf4j-log4j12.

Gradle 모듈이 있습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3