제외는 자식 pom 또는 부모 pom에서 처리해야합니까?

라디안

나는 일반적으로 동일한 부모 pom에 의존하는 몇 가지 프로젝트에서 작업하는이 상황에 있습니다. 우리는 부모 pom의 dependencyManagement 섹션에서 모든 종속성 버전 및 제외를 처리합니다. 자식 poms는 필요한 종속성을 지정하지만 부모의 버전을 사용합니다.

항아리에 제외를 배치하면 일반적으로 다른 곳에서 해당 항아리의 다른 버전을 얻고 싶기 때문입니다 (일반적으로 우리가 의존하는 다른 항아리).

그러나 문제가 발생했습니다. 부모에 jar C의 다른 버전에 의존하는 두 개의 jar A와 B가 있다고 가정 해 보겠습니다. 자식 프로젝트에서 작업하는 사람은 jar A와 B가 모두 필요할 수 있으며 jar B에서 jar C를 제외하고 부모로 이동할 수 있습니다. 그들을 위해 잘 작동 할 수 있습니다. 그러나 다른 자식 프로젝트에서 작업하는 다른 사람은 jar B에만 의존 할 수 있으며 이제는 jar C를 잃어 버려 최신 부모 코드를 선택한 후 런타임에 프로젝트에서 NoClassDefFoundError가 발생할 수 있습니다. 나중에 다른 자식 프로젝트에서 작업하면서 jar B (단지 A가 아님)가 필요하다고 결정하여 jar B를 추가합니다.주의를 기울이지 않으면 jar에 필요한 jar C가 없다는 사실을 깨닫지 못할 수 있습니다. B. 런타임에 NoClassDefFoundError가 발생할 수 있습니다.

보시다시피 jar A와 jar B가 모두 필요한 자식 프로젝트는 괜찮지 만 jar B 만 필요한 자식 프로젝트도 jar C를 pom에 추가하는 것을 기억해야합니다.

자식 pom에서만 제외하는 것이 더 나은 습관입니까? 아니면 계속해서 부모 pom에서 제외를 시도하고 제외를 자세히 살펴보고 필요에 따라 자식 pom에 추가 종속성을 추가해야합니까? 감사!

Gjoranv

dependencyManagement제외 (범위 아님)가 아닌 버전에 대해서만 상위에서 사용 합니다. 자신을 지적했듯이 부모에 제외를 추가하면 다른 개발자 (그리고 나중에 자신도)가 왜 필요하고 예상되는 전 이적 종속성을 얻지 못하는지 혼란스러워하는 상황이 발생할 수 있습니다.

에 관해서:

항아리에 제외를 배치하는 것은 일반적으로 다른 곳 (일반적으로 우리가 의존하는 다른 항아리)에서 해당 항아리의 다른 버전을 가져 오기를 원하기 때문입니다.

여기에 제공하는 이유에 대한 제외를 피하기 위해 부모 pom에서 이러한 전 이적 종속성에 대해 올바른 버전을 적용 할 수 있습니다. 단점은 물론 종속 라이브러리의 버전을 업데이트 할 때 해당 버전을 업데이트해야한다는 점을 기억해야합니다. 이것이 우리가 200 개 이상의 poms로 프로젝트를 관리하는 방법이며, 모든 종속성의 올바른 버전을 얻기 위해 제외 항목을 추가 할 위치를 찾는 것보다 훨씬 낫다고 말해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

부모 pom에서 자식 pom으로 종속성을 상속하는 방법

부모 pom에서 자식 pom의 maven 종속성 제거

부모 pom에 정의 된 플러그인 구성을 자식 pom에서 제거하는 방법

Maven의 상속 된 자식 종속성 내에서 부모 pom 종속성을 제외하는 방법은 무엇입니까?

자식 pom에서 부모 pom 종속성 버전을 재정의하는 것을 방지하는 방법

부모 pom에서 자식 pom의 Maven 종속성 상속

외부 프로젝트의 pom에서 maven liquibase pom을 실행하는 방법은 무엇입니까?

argLine이 부모 pom.xml에서 자식 모듈로 전파됩니까?

자식 pom에서 Maven 3.0 부모 플러그인 속성을 재정의하는 방법

어셈블리 중에 부모 및 자식 pom 병합

모바일 자동화에 대한 허용 또는 거부 옵션을 요청하는 카메라 기반 팝업을 어떻게 처리해야합니까?

Maven-부모 pom 버전을 상속하기 위해 부모 pom 및 자식 pom 버전 관리

부모 pom에서 자식 모듈의 경로 확인

SpringBoot에서 비 해석 부모 POM

Spring Boot-이미 부모 pom이있는 경우 부모 pom

자식 pom이 맞춤 부모 pom의 spring-boot-starter-parent에서 플러그인 관리 및 종속성 관리를 상속할 수 있습니까?

pom.xml에서 "el-api"는 언제 유용합니까?

Eclipse luna는 양식 기반 POM에서 일부 탭을 표시하지 않습니다.

부모 pom에서 종속성 버전을 재정의하는 권장 방법은 무엇입니까?

부모 또는 자식 클래스에서 자식 클래스의 재정의 된 메서드를 호출하려면 어떻게해야합니까?

Maya에서 외부 텍스처 테두리가있는 타 일식 텍스처를 만들려면 어떻게해야합니까?

자식으로 시작하는 재귀 쿼리에서 형제 및 부모 행을 제거하려면 어떻게해야합니까?

pom.xml에서 속성을 부정하는 방법은 무엇입니까?

자식에없는 경우 부모 내부에서 추가하려면 어떻게해야합니까?

pom.xml에서 속성을 외부화하는 가장 좋은 방법은 무엇입니까?

데몬 화 부모는 자식을 포크 한 후 free () 메모리를 해제해야합니까?

pom.xml의 리소스 태그에서 제외 태그의 의미는 무엇입니까?

부모 POM에서 Maven 프로젝트로 파일을 복사하는 방법

루프 모서리 유형 또는 자식-부모 모서리에 대해 다른 모서리 형태를 선택할 수 있습니까?

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관