source

Maven - Eclipse에서 관리 버전 재정의 경고 억제

ittop 2023. 2. 26. 10:31
반응형

Maven - Eclipse에서 관리 버전 재정의 경고 억제

사용하고 있다spring-boot여기서 설명한 것과 유사한 오류가 발생하였습니다.pom.xml에 다음 내용을 추가했습니다.

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$-->
        <version>1.1.0.Final</version>
    </dependency>

Spring boot에 의해 부모 pom.xml에 정의되어 있는 validation-api 1.0.0 의존관계를 덮어쓰고 있습니다.이것에 의해, 다음과 같은 귀찮은 경고 메세지가 표시됩니다.

관리 버전 1.0.0을 재정의하고 있습니다.검증용 GA-api

이클립스에서 이 경고 메시지를 영구적으로 억제하려면 어떻게 해야 합니까?pom.xml과 문제 뷰에 모두 표시됩니다.

해당 경고가 나타나면 경고(Ctrl+1)에서 빠른 수정 메뉴를 열고

이 경고 무시

이렇게 하면 다음과 같이 버전 행에 코멘트가 추가됩니다.

<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$-->
</dependency>

문제는 수동으로 잘못된 행에 코멘트를 추가했다는 것입니다.

프로젝트가 사용하고 있기 때문에spring-boot보다 적절한 답변은, https://stackoverflow.com/a/35385268/1568658 를 참조해 주세요.

(또, 같은 문제를 받고 있기 때문에, 위의 답변도 그다지 완전하지 않습니다.여기에 답변을 추가하겠습니다.)

문제 원인:

spring-boot많은 의존관계와 그 버전을 정의하고 있습니다.spring-boot부모로서 이러한 종속성이 상속되어 다른 버전으로 종속성 중 하나를 재정의하면 다른 라이브러리의 종속성이 손상될 수 있으므로 경고가 발생합니다.

솔루션:

이 종속성에 대한 속성을 정의합니다.<properties></properties>버전을 지정합니다.

        <properties>
            <reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version>
        </properties>

속성 이름을 찾는 방법:

  • 를 엽니다.pom.xmlIDEA 또는 Eclipse에 있습니다.
  • Ctrl +의<parent>tag를 사용하여 부모의 pom을 열고 attactId를 가진 pom 파일에 접속하려면 재귀적으로 두 번 클릭해야 합니다.spring-boot-dependencies.
  • POM을 연 후 종속성을 검색합니다.servlet-api디폴트 버전이 표시됩니다.

https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot에서 봄의 문서에 더 자세히 설명되어 있습니다.

main pom에 필요한 버전을 입력합니다.

이 경고는 기본(최상위 수준) POM에 정의된 아티팩트 버전을 재정의하려고 함을 의미합니다.메인 폼에 필요한 버전을 입력하면 사용할 필요도 없습니다.<version />이 의존성에 대한 다른 poms.

제 문제는 lombok.jar 버전에 관한 것입니다.저는 롬복 버전을 여러 개 가지고 있고 이클립스 버전을 가져가고 있는데 버전이 더 많이 검출되어 버전을 선택할 수 없습니다.그래서 maven folder(.m2)에 가서 lombok의 추가 버전을 삭제하고 프로젝트를 maven update를 하면 오류가 사라집니다.

하지만 나는 롬복 버전을 어디에도 제공하지 않았다. 이클립스는 버전을 선택하고 방법을 모른다.

도움이 된다! 나는 문제를 해결한다.모듈 pom 파일로 9.2.12를 선언합니다.스프링 부트 중 M0은 V9.3을 참조합니다.부모 pom 파일의 V9.2를 덮어씁니다.'에릭 왕' 뒤에 이어지다

언급URL : https://stackoverflow.com/questions/30782453/maven-suppress-overriding-managed-version-warning-in-eclipse

반응형