maven 学习笔记一 (坐标和依赖)

 这两天老大打算用maven做项目管理,如是在baidu中狂找资料,最后在csdn找到了maven实战完全版。学习中。。。。。。

 

  坐标和依赖

   坐标:在pon.xml 中 无论是项目本身还是需要依赖的构建或者是maven的插件在maven仓库中都包含一个唯一的坐标值。

   坐标的组合是:

     项目的名称

    模块名称

    版本信息

    文件扩充名 默认的是jar

   例如:

           struts2 核心包 core 的坐标
            org.apache.struts
            struts2-core
            2.3.14
   依赖: 项目依赖jar包,maven依赖插件。

     在用maven做项目管理时主要存在这两种依赖,主要体现在两个pom.xml里面的

    1.jar包依赖声明       

    2.插件依赖声明

   依赖的属性设置:

    项目的名称

    模块名称

    版本信息

    对应坐标定义的packaging

    依赖范围分四个区域(compile[编译(spring-core)],test[测试(jUnit)],provided[已提供(servlet-api)],runtime[运行时(jdbc 驱动)])

    四个区域在正式发布时 测试依赖是不会与项目打包的

    标记依赖可选用于依赖范围都是compile 但是可选依赖的如:mysql JDBC 驱动 和 其他数据库驱动

   排除依赖

   传递性依赖:

         在pom.xml 中声明依赖 struts2-core 在本地的库里面可以看到maevn从中央参考里同时下载了comming-log 等strust2所依赖的包,这就是传递行依赖。

     依赖范围对传递性依赖同时有效。

       在项目中 如果 A 项目 ->  B 项目 -> C项目   A项目 -> C项目

   依赖调解:

      如果 项目A --> 项目B --> 项目C     同时 项目A --> 项目E -->项目C  则下载的顺序是按照pom.xml 声明的顺序依赖

      如果 项目A ---> 项目B --->项目C  同时  项目A ---> 项目C  则执行 第二种情况的依赖

      路径长度相同时已声明顺序为优,不同时以最短路径为优。

  排除依赖:

     如果 项目A -->项目B -->项目C中某个不稳定模块。

       这时候我们可以在依赖加上:

         

             项目的名称

             模块名称

        

    并在pom.xml 中申明改模块的稳定版本。

 归类依赖:

    书中以spring-core 的包引入威力:在properties 中声明 spring-version  在依赖申明中 中引入值在升级的时候只有修改一个地方。

 优化依赖:

        命令(记得是在项目的目录下面):

         mvn dependency:list 查询所以依赖

         mvn dependency:tree 查询依赖树

         mvn dependency:analyze (注意两个显示内容)

                      1.used undeclared dependencies  没有显示声明的依赖

                       2.unused deckared dependencies 项目未使用的依赖

  这些完全是个人的一些总结建议大家还是去看maven实战CSDN中有完整版本的下载

 

你可能感兴趣的:(maven 学习笔记一 (坐标和依赖))