maven 技术总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven 技术总结相关的知识,希望对你有一定的参考价值。

1.版本统一控制

在 properties中配置一个参数,在添加依赖时 通过 version标签 限定版本

<properties>  

 <org.springframework.version>3.2.8.RELEASE</org.springframework.version>  

    <!-- <org.springframework.version>4.0.2.RELEASE</org.springframework.version> -->  

</properties>  

<dependency>  

    <groupId>org.springframework</groupId>  

    <artifactId>spring-context</artifactId>  

    <version>${org.springframework.version}</version>     <scope>runtime</scope>  

</dependency>  

2.scope 

Maven编译代码时需要使用classpath,但classpath不止一种,而是:

 

编译classpath

测试classpath

运行classpath

 

Maven会根据需要使用不同的classpath,而scope可以用来控制依赖与这三种classpath之间的关系。

 

compile:默认使用该项,对三种classpath都有效。

test:仅对测试classpath有效,如上面的Junit。

provided:对编译和测试classpath有效,比如开头贴出的servlet-api的依赖,会在运行时由app server提供,Maven不可以重复引入。

runtime:对测试和运行classpath有效,编译时无效。

system:对编译和测试classpath有效,但必须通过systemPath显示指定依赖文件的位置,可以使用系统环境变量。

import:不针对任何一种classpath,该项用于导入其他pom中的dependencyManagement元素。

 

通常会使用前三种。

scope不仅用来控制依赖与classpath之间的关系,还会对依赖的传递性产生影响。

传递性依赖? 比如A依赖B,B依赖C,则A对于B是直接依赖,对于C是传递性依赖。

A对B、B对C的依赖范围决定了A对C的依赖范围。

以上是关于maven 技术总结的主要内容,如果未能解决你的问题,请参考以下文章

Spring框架技术总结

Java Maven打包总结(Jenkins多模块编译部署)

JavaWeb 项目开发中的技术总结

IDEA中MyBatis Migrations Maven plugin 使用总结

IDEA中MyBatis Migrations Maven plugin 使用总结

Java Web技术总结(目录)