Maven – 依赖管理
maven-dependency-plugin:2.1:tree (default-cli) @ MavenExamples ---
[INFO] com.howtodoinjava.demo:MavenExamples:jar:0.0.1-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] - org.springframework:spring-core:jar:4.3.5.RELEASE:compile
[INFO] - commons-logging:commons-logging:jar:1.2:compile
了解它如何通知 spring 依赖`commons-logging`。 同样,您可以使用此命令获取完整的传递依赖项信息。
## Maven 依赖排除
除了由传递依赖引起的版本不匹配问题之外,项目工件和部署平台(例如 Tomcat 或其他服务器)之间的工件之间可能存在**版本不匹配**。
为了解决此类版本不匹配的问题,maven 提供了`<exclusion>`标记,以打破传递依赖项。
例如,当您在类路径中具有 JUnit4.12 并包括 DBUnit 依赖项时,则需要删除 JUnit 3.8.2 依赖项。 可以使用`exclusion`标签完成。
```java
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>${dbunit.version}</version>
<scope>test</scope>
<exclusions>
<!--Exclude transitive dependency to JUnit-3.8.2 -->
<exclusion>
<artifactId>junit</artifactId>
<groupId>junit</groupId>
</exclusion>
</exclusions>
</dependency>
工件版本范围
在包含依赖项的同时,您可以自由地为任何工件指定版本范围。 要给出版本范围,可以使用以下符号:
- 括号符号
(
和)
表示包含范围 - 括号符号
[
和]
表示排除范围 - 逗号分隔的子集
版本范围示例
让我们看一些示例,以更好地了解有关指定版本范围的信息。
范围 | 含义 |
---|---|
1.2 |
等于 1.2 或以 1.2 开头的版本 |
(,1.2] |
小于 1.2 的任何版本。 包含 1.2 版。 x <= 1.2 |
(,1.2) |
小于 1.2 的任何版本。 1.2 版除外。 x < 1.2 |
[1.2] |
仅限于 1.2 版。 x == 1.0 |
[1.2,) |
任何大于 1.2 的版本。 包含 1.2 版。 x >= 1.2 |
(1.2,) |
任何大于 1.2 的版本。 1.2 版除外。 x > 1.2 |
(1.2,2.2) |
在 1.2 和 2.2 之间的版本。 两者都排除在外。 1.0 < x < 2.0 |
[1.2,2.2] |
在 1.2 和 2.2 之间的版本。 两者都包括在内。 1.2 <= x <= 2.2 |
(,1.2],[2.2,) |
小于 1.2 或大于 2.2 的版本。 两者都包括在内。 x <= 1.2 or x >= 2.2 |
将我的问题放在评论部分。
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果