Maven学习笔记---传递依赖冲突解决

来源:互联网 发布:dx修复软件 编辑:程序博客网 时间:2024/05/20 02:23

Maven学习笔记—传递依赖冲突解决

传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C就是A的传递依赖;
导入依赖D,D依赖C(1.2版本),这时会产生依赖冲突

maven自己调节

第一声明者优先原则

谁先定义的就用谁的传递依赖。

路径近者优先原则

直接依赖级别高于传递依赖。

手动排除依赖

选择自己要用的版本,其余的版本去除掉(一般保留高版本的依赖)
移除不想要的依赖
pom.xml文件中的配置
pom.xml文件中去除

(依赖)版本锁定(常用)

pom.xml文件中的配置,此处用了属性设置,所有jar包的依赖版本都是直接引用相应的属性,便于以后升级(更改)版本。

<!-- 属性 -->    <properties>        <spring.version>4.2.4.RELEASE</spring.version>        <hibernate.version>5.0.7.Final</hibernate.version>        <struts.version>2.3.24</struts.version>    </properties>    <!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->    <dependencyManagement>        <dependencies>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-context</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-aspects</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-orm</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-test</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-web</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.hibernate</groupId>                <artifactId>hibernate-core</artifactId>                <version>${hibernate.version}</version>            </dependency>            <dependency>                <groupId>org.apache.struts</groupId>                <artifactId>struts2-core</artifactId>                <version>${struts.version}</version>            </dependency>            <dependency>                <groupId>org.apache.struts</groupId>                <artifactId>struts2-spring-plugin</artifactId>                <version>${struts.version}</version>            </dependency>        </dependencies>    </dependencyManagement>    <!-- 依赖管理 -->    <dependencies>        <!-- spring -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aspects</artifactId>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-orm</artifactId>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>        </dependency>        <!-- hibernate -->        <dependency>            <groupId>org.hibernate</groupId>            <artifactId>hibernate-core</artifactId>        </dependency>        <!-- 数据库驱动 -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.6</version>            <scope>runtime</scope>        </dependency>        <!-- c3p0 -->        <dependency>             <groupId>c3p0</groupId>            <artifactId>c3p0</artifactId>            <version>0.9.1.2</version>        </dependency>        <!-- 导入 struts2 -->        <dependency>            <groupId>org.apache.struts</groupId>            <artifactId>struts2-core</artifactId>        </dependency>        <dependency>            <groupId>org.apache.struts</groupId>            <artifactId>struts2-spring-plugin</artifactId>        </dependency>        <!-- servlet jsp -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>2.5</version>            <scope>provided</scope>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jsp-api</artifactId>            <version>2.0</version>            <scope>provided</scope>        </dependency>        <!-- 日志 -->        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-log4j12</artifactId>            <version>1.7.2</version>        </dependency>        <!-- junit -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.9</version>            <scope>test</scope>        </dependency>        <!-- jstl -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jstl</artifactId>            <version>1.2</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.1.15</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->        <dependency>            <groupId>org.apache.commons</groupId>            <artifactId>commons-lang3</artifactId>            <version>3.4</version>        </dependency>    </dependencies>
原创粉丝点击