通常,建议在给定时间在类路径中只有一个版本的依赖项.以这种方式执行将允许您准确了解将在运行时使用的类的哪个版本.
为了避免版本冲突,请尝试像这样指定您的依赖项:
<dependency>
<groupId>commons-daemon</groupId>
<artifactId>commons-daemon</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>some_group</groupId>
<artifactId>some_artifact</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
您需要在2.5版本中指定groupId和artifactId冲突工件的位置.
小智 7
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
依赖关系中介 - 确定在遇到工件的多个版本时将使用哪个版本的依赖关系.目前,Maven 2.0仅支持使用"最接近的定义",这意味着它将在依赖树中使用与项目最接近的依赖项版本.您可以通过在项目的POM中明确声明它来保证版本.请注意,如果两个依赖关系版本在依赖关系树中处于相同的深度,则直到Maven 2.0.8没有定义哪一个会赢,但是自Maven 2.0.9开始,它就是声明中的顺序:第一个声明获胜.
- "最接近的定义"表示所使用的版本将是依赖树中与项目最接近的版本,例如.如果A,B和C的依赖关系被定义为A - > B - > C - > D 2.0和A - > E - > D 1.0,则在构建A时将使用D 1.0,因为从A到D的路径是E更短.您可以在A中向D 2.0明确添加依赖项以强制使用D 2.0
听起来像版本2.5由另一个依赖项传递.这使版本4.3和2.5的长度相同.
通过在项目中明确定义A 2.5的依赖关系,它将是最近的并覆盖任何其他版本.
| 归档时间: |
|
| 查看次数: |
19628 次 |
| 最近记录: |