Maven——依赖

一、依赖的范围

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

[1]从项目结构角度理解 compile 和 test 的区别

[2]从开发和运行这两个不同阶段理解 compile 和 provided 的区别

二、不同作用域的有效性

三、依赖的传递性

非compile范围的依赖不能传递,必须在有需要的工程中单独加入

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.9</version>
    <scope>test</scope>
</dependency>

四、依赖的原则:解决 jar 包冲突

[1]路径最短者优先

[2]路径相同时先声明者优先

这里“声明”的先后顺序指的是 pom.xml文件中dependency 标签配置的先后顺序。

五、依赖的排除

<dependency>
    <groupId>com.nchu.maven</groupId> 
    <artifactId>HelloMaven</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <type>jar</type>
    <scope>compile</scope>
    <exclusions>
           <exclusion>
               <groupId>commons-logging</groupId>
               <artifactId>commons-logging</artifactId>
          </exclusion>
      </exclusions>
 </dependency>

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

对同一个框架的一组 jar 包最好使用相同的版本。为了方便升级框架,可以将 jar 包的版本信息统一提取出来

<properties>
    <spring.version>4.1.1.RELEASE</spring.version>
</properties>

<dependencys>
    <dependency>
        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>   
</dependencys>
原文地址:https://www.cnblogs.com/realshijing/p/8205560.html