Maven项目管理概念总结

Maven

Maven概念

一款自动化构建工具,专注服务于Java平台的项目构建和jar包依赖管理。maven并不是一个框架,但是他其中一个功能是帮助开发者管理框架所需要的jar包使用Maven后每个jar包本身只在本地仓库中保存一份,需要jar包的工程只需要以坐标的方式简单的引用一下就可以了。不仅极大的节约了存储空间,让项目更轻巧,更避免了重复文件太多而造成的混乱。

jar包之间的依赖关系

jar包往往不是孤立存在的,很多jar包都需要在其他jar包的支持下才能够正常工作,我们称之为jar包之间的依赖关系。最典型的例子是:commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar,如果没有IO包,FileUpload包就不能正常工作。而引入Maven后,Maven就可以替我们自动的将当前jar包所依赖的其他所有jar包全部导入进来,无需人工参与,节约了我们大量的时间和精力。

Maven的安装

    ①检查JAVA_HOME环境变量
        C:\Windows\System32>echo %JAVA_HOME%
        D:\DevInstall\jdk1.7.0_07
    ②解压Maven的核心程序
        将apache-maven-3.2.2-bin.zip解压到一个非中文无空格的目录下。例如:D:\DevInstall\apache-maven-3.2.2
    ③配置环境变量
        M2_HOME  :  D:\DevInstall\apache-maven-3.2.2
        path    :  .....;D:\DevInstall\apache-maven-3.2.2\bin
    ④查看Maven版本信息验证安装是否正确
        命令行中输入命令:mvn -v

Maven

Project Object Model:项目对象模型。将Java工程的相关信息封装为对象作为便于操作和管理的模型。Maven工程的核心配置。可以说学习Maven就是学习pom.xml文件中的配置.pom.xml文件存在于项目的根节点下。

依赖

依赖范围

依赖的范围有几个可选值,我们用得到的是:compile、test、provided三个。

compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都要使用该依赖jar包;

test:测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试classpath,而在编译和运行项目时无法使用此类依赖,典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;

provided:此依赖范围,对于编译和测试classpath有效,而对运行(指的并不java项目运行,而是java web项目运行在服务器的时候)时无效;(tomcat的lib文件中的jar包就是web项目的运行环境)

 compiletestprovided
主程序×
测试程序
参与部署,运行阶段××

依赖的传递性

A依赖B,B依赖C,A能否使用C呢?那要看B依赖C的范围是不是compile,如果是则可用,否则不可用。

Maven工程C依赖范围对A的可见性
A > B > Ccompile
A > B > Ctest×
A > B > Cprovided×

依赖的排除

如果我们在当前工程中引入了一个依赖是A,而A又依赖了B,那么Maven会自动将A依赖的B引入当前工程,但是个别情况下B有可能是一个不稳定版,或对当前工程有不良影响。这时我们可以在引入A的时候将B排除。在dependency中添加以下节点

<exclusions>
     <exclusion>         
     <groupId>commons-logging</groupId>              
     <artifactId>commons-logging</artifactId><!-- B的坐标-->   
     </exclusion>
</exclusions>
​

统一管理所依赖jar包的版本

我们可以将jar包的版本信息统一提取出来,以便对于那些版本号相同的坐标统一修改。
实现步骤:在pom.xml中
1统一声明版本号
<properties>
     <my.version>4.1.1.RELEASE</my.version>//自定义标签名
</properties>
2引用前面声明的版本号
<dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${my.version}</version>
     </dependency>

依赖的原则

1.最短路径优先

2.路径相同时先声明者优先

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值