maven 实战
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven 实战相关的知识,希望对你有一定的参考价值。
1、传递依赖冲突解决
- 传递依赖:A(项目)依赖B,B依赖C,C就是A的传递依赖,B就是A的直接依赖。
- 举例:如果A项目依赖了Bjar包,Bjar包依赖Cjar包(1.1版本),但是导入依赖Djar包,D却依赖Cjar包(1.2版本),这样就产生了传递冲突依赖。
- maven自己调解原则
- 第一声明者优先原则
- 谁先定义的就用谁的传递依赖。
- 路径近者优先原则
- 直接依赖级别高于传递依赖。
- 第一声明者优先原则
- 排除依赖
<dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.30</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies>
- 版本锁定(推荐使用)
<!-- 版本锁定:指定项目中依赖的版本
dependencyManagement只会锁定版本号,并不会产生依赖jar包
-->
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies> </dependencyManagement>
<!-- 版本锁定:指定项目中依赖的版本 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.30</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies>
【注意】:如果按照这种方式的话,将来spring框架升级了,那么我就需要在每个spring的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> <!-- 版本锁定:指定项目中依赖的版本 ,并不会产生依赖jar包 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement>
2、通过maven整合SSH框架
3、通过maven对项目进行拆分、聚合
4、私服应用
以上是关于maven 实战的主要内容,如果未能解决你的问题,请参考以下文章
maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段