maven依赖

一、依赖的范围、依赖的有效性

    

 <scope>test</scope>

    scope中指定依赖的范围 compile(默认)、test 、provided

* compile,缺省值,适用于所有阶段,会随着项目一起发布。 
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

 

2、依赖排除

如以下例子

    A.jar (x.java , y.jar , z.java)         B.jar(m.java  , n.java   ,o.java)

   A与B之间的依赖本质 z.java -> n.java (比如z.java中调用了n.java的n类)

<dependencies>
    <dependency>
        <groupId>B</groupId>
        <artifactId>b</artifactId>
        <version>1.0</version>
        <scope>compile</scope>

        <exclusions>
            <exclusion>
            <groupId>c</groupId>
            <artifactId>c</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

</dependencies>

 

3、依赖的传递性

 A.jar -> B.jar -> C.jar

要使A.jar 依赖 C.jar : 当且仅当 B.jar 依赖于 C.jar 的范围是compile

 

4、创建多个依赖项目 

创建 多个maven项目之间的依赖:P项目 依赖于 Q项目 

a、将Q项目打包 ,并install 到本地仓库。

b、在P项目中,加入依赖声明 

<dependencies>
<dependency>
<groupId>Q</groupId>
<artifactId>Q</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>

5、依赖原则 

    a、最知路径优先原则 

    b、路径相同

          i:如果在同一个pom.xml中有两个相同的依赖,则后声明的会覆盖前面声明的依赖

          ii:  如果在不同的pom.xml中有两个相同的依赖,则先声明的优先。

6、在pom.xml中,修改jdk的版本 

<profile>
<id>jdk-1.8</id>    
    <activation>  
        <activeByDefault>true</activeByDefault>    
        <jdk>1.8</jdk>    
    </activation>    
    <properties>    
        <maven.compiler.source>1.8</maven.compiler.source>    
        <maven.compiler.target>1.8</maven.compiler.target>    
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
    </properties>    
</profile>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值