Maven은 라이브러리 관리에 유용한 도구입니다.
그러나 때때로 각 라이브러리에서 참조하는 하위 라이브러리의 충돌 버전이 있습니다.
Maven에서는 각 라이브러리가 다른 버전을 참조할 때 Maven 트리 구조에서 루트에 가장 가까운 라이브러리를 선택합니다.
올려.
Maven 트리 검사
mvn dependency:tree
예를 들어, 티카 라이브러리와 함께 openhtmltopdf 라이브러리는 모두 pdfbox 라이브러리를 참조하지만 각 라이브러리는 다른 버전의 pdfbox를 참조합니다.
tika-parsers-standard-package -> pdfbox:2.0.27
openhtmltopdf-pdfbox -> pdfbox:2.0.22
Maven Tree에서 tika 라이브러리가 맨 위에 있으므로 pdfbox:2.0.27 버전을 선택하고 openhtmltopdf의 pdfbox를 생략합니다.
이러한 버전 충돌이 발생했을 때 Maven 버전 전략에 의존하지 않고 직접 선택하고 싶다면, exclusion
라벨을 사용하십시오.
<排除>
Dependency
태그 안에 exclusion
지정된 라이브러리 외에 태그를 넣어 참조할 수 있습니다.
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers-standard-package</artifactId>
<version>2.6.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-pdfbox</artifactId>
<version>1.0.6</version>
</dependency>
위와 같이 tika 라이브러리의 종속성에서 pdfbox를 제외 태그로 지정하면 빌드 시 tika 라이브러리의 pdfbox:2.0.27이 제외되고 openhtmltopdf 라이브러리에서 참조하는 pdfbox:2.0.22가 사용됩니다.
.