`

maven解决传递依赖冲突解决

阅读更多
传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C就是A的传递依赖
                              导入依赖D,D依赖C(1.2版本)

1.1 maven 自己调解原则
     1.1.1 第一声明者优先原则
             谁先定义的就用谁的传递依赖
     1.1.2 路径近者优先原则
             直接依赖级别高于传递依赖
1.2 排除依赖
     
	<dependencies>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.5.10.1</version>
			<!-- 排除依赖 -->
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-beans</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.9.RELEASE</version>
		</dependency>
	</dependencies>
      

1.3 版本锁定
     
        <properties>
		<spring.version>4.3.9.RELEASE</spring.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${spring.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
      



  • 大小: 34.7 KB
分享到:
评论

相关推荐

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

    总结来说,解决Maven依赖冲突需要深入理解Maven的依赖管理和类加载机制。在本案例中,通过修改冲突依赖的类路径,可以实现多版本依赖的共存,但这种方式并不适用于所有场景,因此在实际应用中应谨慎考虑。在可能的...

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

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

    Maven传递依赖和依赖的规则.docx

    **一、Maven传递依赖** 传递依赖是指在Maven项目中,当一个项目A依赖于另一个项目B,而项目B又依赖于项目C时,项目A间接地依赖于项目C。这种关系使得A可以通过B来间接获取到C的类和资源。但是,并非所有的传递依赖...

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

    这款插件专为IntelliJ IDEA设计,旨在帮助开发者轻松解决Maven依赖冲突问题,提高开发效率。 **MavenHelper插件介绍** MavenHelper是一款强大的IDEA插件,它的主要功能是分析和可视化Maven项目的依赖树,帮助开发者...

    maven依赖小例子

    这大大简化了项目的构建过程,但同时也可能导致依赖冲突,需要通过排除机制或调整依赖版本来解决。 在`&lt;dependency&gt;`标签内,还可以添加`&lt;exclusions&gt;`子标签来排除特定的依赖,避免冲突。例如: ```xml ...

    Maven类包冲突终极解决小技若干

    这样就可以获得所有传递依赖的完整列表,从而更容易发现隐藏的问题。 **2. 明确指定依赖版本** - **原理**:为了避免版本冲突,开发者可以直接在 `pom.xml` 文件中显式声明所需的特定版本,从而覆盖默认的版本选择...

    Maven 依赖详细理解.pdf

    依赖调解是Maven解决依赖冲突的机制。当一个项目中引入了两个具有相同坐标但版本不同的依赖项时,Maven会根据一定的规则选择其中一个版本。Maven的依赖调解规则包括:短距离优先原则和声明优先原则。短距离优先原则...

    Maven的依赖验证项目

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

    Maven依赖管理项目构建工具.pdf

    六、Maven依赖传递和依赖冲突 1. Maven依赖传递特性 Maven会自动处理项目的依赖及其依赖的依赖,称为依赖传递。 2. Maven依赖冲突特性 当不同依赖引入了相同但不同版本的库时,会产生依赖冲突。Maven遵循“nearest ...

    apache-maven3.5 依赖包

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

    MavenHelper

    "MavenHelper"是一款针对IntelliJ IDEA开发的高效Maven插件,它的主要功能在于帮助开发者快速定位和解决Maven项目中的依赖冲突问题。在Java开发中,Maven作为主流的构建工具,其依赖管理是项目构建的重要环节。然而...

    Maven jar包冲突的解决方案

    Maven jar包冲突的解决方案 Maven 是一个流行的 Java 项目管理和构建工具,它提供了许多有用的功能,例如依赖管理、项目构建和项目依赖关系管理等。但是,在使用 Maven 进行项目开发时,经常会遇到 jar 包冲突的...

    maven3.0 maven3.0

    2. **更好的依赖管理**:Maven 3.0 对依赖解析进行了优化,解决了依赖冲突的问题,增强了传递性依赖的处理。它引入了新的依赖范围和更精确的依赖解析算法,减少了由于依赖问题导致的构建失败。 3. **增强的插件管理...

    maven helper idea 插件

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

    Maven 3.5.0版本资源

    2. **依赖管理**:该版本加强了依赖解析,减少了因为依赖冲突导致的问题。它能更准确地解决传递性依赖,同时提供更好的依赖排除策略。 3. **插件管理**:Maven 3.5.0对插件管理进行了改进,支持更灵活的插件版本...

    MavenRunHelper.zip

    1. **快速定位依赖**: Maven Helper插件允许用户快速查看项目中的所有依赖关系,包括直接依赖和传递依赖。这在解决依赖冲突、查找特定库或检查项目依赖树时非常有用。用户可以通过插件直接在IDE内获取清晰的依赖图谱...

Global site tag (gtag.js) - Google Analytics