maven学习----依赖

来源:互联网 发布:csol淘宝买积分 编辑:程序博客网 时间:2024/06/16 12:52

配置文件中的依赖包,如何查询:

   
   
      1  通过坐标来进行查询--GAV
      2   有一些转门的网站,可以给我们坐标,比如 http://mvnrepository.com/artifact/org.nuxeo.common/nuxeo-common/
      3   可以通过dependency可以设置依赖,假如第一个类需要引用第二个类,需要将第一个类打包,然后在pom文件中加上第一个类所在的目录 得到传递性依赖


依赖包的传递性

          依赖是会被传递的。
         
          但是,假如没有写scope 默认就是compile 范围也就是编译范围,但是下面的scope为test,是不会导入junit包 。也就是这个依赖的scope是test,那么这个包是不会传递到一个compile的中的。对于依赖的传递而言,主要是针对compile作用域来传递的 ,而不是test。
                        

scope的作用域有很多 其中包括
        test           打成jar 或者是war不会打进去,仅仅在测试范围内有效
        compile    范围指的是编译范围有效,在编译和打包的时候都会将依赖存储进去
        provided  在编译和测试的过程有效, 在最后生成war包是不会加入的 诸如:servlet-api 因为tomcat的web服务器已经存在了 假如再次打包的时候回出现重复的
        runtime   在运行的时候依赖, 在编译的时候不依赖
        默认的依赖范围就是compile

依赖的问题:

    假如A-->B1.1 版本    C--->B1.0   那么 d-->A和C  那么d依赖于A的版本还是c得版本的?答案是 那个先写先依赖那个

    如果依赖的长度不一,那就依赖最短的路径

如何改变默认的依赖规则:

         配置文件中 <exclusions></exclusions> 排除的因素

         比如:java文件dao依赖于log 和core,但是log和core  里面都有log4j.jar。需要在不依赖的那个包中添加如下的配置文件解决:
             
<dependency>    <groupId>org.konghao.user</groupId>    <artifactId>user-log</artifactId><version>0.0.1-SNAPSHOT</version><type>jar</type><scope>compile</scope><exclusions>   <exclusion>   <groupId>org.konghao.user</groupId>       <artifactId>log4j</artifactId>   </exclusion></exclusions></dependency>

 
0 0
原创粉丝点击