1 传递依赖冲突解决
- 传递依赖:A依赖B,B依赖C。B是A的直接依赖,C是A的传递依赖。
- 场景:项目A导入依赖B。B依赖C(版本是1.1),项目A又导入依赖D,D依赖C(1.2),这样就会有版本冲突。
1.1 maven自己调解原则
- 第一声明者优先原则:谁先定义的就用谁的传递依赖。
- 路径近者优先原则:
1.2 排除依赖
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.34</version> <!-- 排除依赖 --> <exclusions> <exclusion> <artifactId>spring-core</artifactId> <groupId>org.springframework</groupId> </exclusion> <exclusion> <artifactId>spring-beans</artifactId> <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency>
1.3 版本锁定(推荐)
<properties> <spring-version>4.2.4.RELEASE</spring-version> </properties> <!-- dependencyManagement用来锁定版本 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.34</version> </dependency> </dependencies>
2 通过maven整合SSH框架
3 通过maven对项目进行拆分、聚合
4 私服的应用