`
nubix
  • 浏览: 91116 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

maven排除部分传递依赖

阅读更多

maven有个很有效的依赖管理机制。

如果a依赖于b,c , d 依赖于 a ,则 d 间接依赖于b,c

 

但这种依赖传递会存在隐患,可能会导致同一个库的不同版本被导入多次,此时可以用exclusions解决:

 

例如:

 

        <dependency>
            <groupId>opensymphony</groupId>
            <artifactId>webwork</artifactId>
            <version>2.2.5</version>
            <exclusions>
                <exclusion>
                    <groupId>freemarker</groupId>
                    <artifactId>freemarker</artifactId>
                </exclusion>
            </exclusions>

        </dependency>

 

这样一来,项目就不会自己导入webwork中的freemarker依赖

 

 

 

分享到:
评论

相关推荐

    ​实现maven项目中多版本依赖兼容使用解决方案

    Maven依赖管理遵循“传递性”原则,即项目可以直接依赖其他项目,间接依赖也会被自动引入。当出现相同类路径的冲突时,Maven会遵循“第一声明者优先”原则,即先声明的依赖版本优先。 2. **排除依赖(Exclusions)...

    maven依赖小例子

    Maven依赖管理遵循“传递性”原则,即如果你的项目依赖A库,而A库又依赖B库,Maven会自动将B库也一并引入。这大大简化了项目的构建过程,但同时也可能导致依赖冲突,需要通过排除机制或调整依赖版本来解决。 在`...

    Maven的依赖验证项目

    Maven的依赖机制遵循“传递性”原则,这意味着如果你的项目依赖A,而A又依赖B,那么Maven会自动将B也引入到你的项目中。但是,这可能导致版本冲突,因此Maven提供了`exclusions`标签来排除不需要的依赖。 在进行...

    Maven 依赖详细理解.pdf

    为了避免依赖冲突,我们可以在dependency中使用exclusions标签来排除某些不需要的传递性依赖。例如,如果我们不想使用spring-boot-starter-web所依赖的spring-boot-starter-tomcat,我们可以在spring-boot-starter-...

    maven_部分_源码和思维导图

    2. **传递性依赖**:Maven 自动处理项目的传递性依赖,即项目依赖的库自身又依赖于其他库。这可能导致版本冲突,需要通过排除或调整依赖范围来解决。 ** Maven 的实际应用 ** 在给定的文件列表中,我们看到一些...

    apache-maven3.5 依赖包

    2. **理解依赖传递性**:Maven会自动处理依赖的依赖,但可能会导致依赖冲突,需要通过 `&lt;exclusions&gt;` 标签排除不需要的子依赖。 3. **管理本地仓库**:定期清理无用的旧版本依赖,避免仓库过大影响性能。 4. **使用...

    maven helper idea 插件

    `Maven Helper`还提供了优化Maven配置的建议,如减少无效的依赖、优化传递依赖等,以提升构建速度。 总的来说,`Maven Helper`是一款强大且实用的IDEA插件,它以直观的方式处理Maven项目中的依赖管理问题,使得...

    Maven完全适用手册

    Maven2的传递依赖机制简化了依赖管理,一个项目依赖A,A又依赖B,那么项目默认也依赖B。但这也可能导致版本冲突,通过exclusions可以排除不需要的依赖。 **开始使用Maven2** 要开始使用Maven2,首先需要下载并安装...

    MavenHelper插件 帮你检查maven的各种冲突

    1. **依赖树查看**:MavenHelper提供了一个直观的依赖树视图,列出项目的所有依赖,包括直接依赖和传递依赖。你可以轻松查找特定的依赖并查看其版本信息。 2. **冲突检测**:该插件能自动检测出有版本冲突的依赖,...

    MavenHelper

    这些依赖关系按照传递性进行组织,即如果模块A依赖于B,B又依赖于C,那么A间接依赖于C。然而,当多个依赖路径指向同一个jar包的不同版本时,就会出现所谓的“版本冲突”。Maven默认遵循“最接近原则”来解决这种冲突...

    Maven资料大合集

    此外,Maven支持排除依赖、传递依赖和依赖范围(如编译、测试等)的概念。 5. **插件机制** Maven的灵活性得益于其强大的插件系统。开发者可以通过编写插件实现自定义构建任务,如编译源码、生成文档、执行单元...

    试试 IDEA 解决 Maven 依赖冲突的高能神器.docx

    依赖冲突源于Maven的传递性依赖和“最近优先”策略。当一个项目间接依赖了不同版本的同一个库时,就会出现冲突。例如,如果项目直接依赖A和B,而A需要C1版本,B需要C2版本,Maven会优先选择路径较短的依赖,即距离...

    Maven指南阅读笔记

    在阅读"Maven指南"的过程中,我们可以学习到几个关键知识点,包括:解决依赖冲突、排除不必要的传递性依赖、处理已提供构件以及利用`dependencyManagement`元素和`parent`元素的区别。 首先,当我们遇到`groupId`和...

    Maven 3.5.0版本资源

    它能更准确地解决传递性依赖,同时提供更好的依赖排除策略。 3. **插件管理**:Maven 3.5.0对插件管理进行了改进,支持更灵活的插件版本策略,允许开发者指定插件的精确版本,防止因插件版本问题导致的构建失败。 ...

    Maven权威指南_maven_

    Maven的依赖管理解决了版本冲突问题,通过设定依赖的传递性、范围(compile、runtime、test等)和排除机制,可以有效地管理项目间的依赖关系。 6. **聚合与继承** Maven的聚合项目可以将多个子项目组合在一起,...

    SpringBoot项目使用maven配置文件

    - Maven使用传递性依赖管理,一个项目依赖的库可能间接依赖其他库,Maven会自动处理这些依赖关系。 - 当出现依赖冲突时,可以通过 `&lt;dependencyManagement&gt;` 标签进行统一管理,或者使用 `&lt;exclusions&gt;` 标签排除...

    Maven学习笔记

    - **依赖管理**: Maven通过POM文件管理项目所依赖的库,依赖具有传递性,意味着一个模块声明的依赖可以被其他模块自动继承。 - **生命周期**: Maven有一系列预定义的构建阶段(如compile, test, package, install, ...

    Maven超级详细文档(依赖管理项目构建工具)

    - 依赖声明:在POM中声明项目所需的外部库,Maven会自动下载并管理这些依赖及其传递性依赖。 - 版本冲突解决:Maven遵循“最接近原则”解决依赖版本冲突,即子模块的依赖优先于父模块的依赖。 - excludes和...

Global site tag (gtag.js) - Google Analytics