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

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

 

  坐标和依赖

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

   坐标的组合是:

     <groupId>项目的名称</groupId>

    <artifactId>模块名称</artifactId>

    <version>版本信息</version>

    <packaging>文件扩充名</packaging> 默认的是jar

   例如:

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

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

    1.<dependencies>jar包依赖声明</dependencies>       

    2.<plugins>插件依赖声明</plugins>

   依赖的属性设置:

    <groupId>项目的名称</groupId>

    <artifactId>模块名称</artifactId>

    <version>版本信息</version>

    <type>对应坐标定义的packaging</type>

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

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

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

   <exclusions>排除依赖</exclusions>

   传递性依赖:

         在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中某个不稳定模块。

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

          <exclusions>

             <groupId>项目的名称</groupId>

             <artifactId>模块名称</artifactId>

         </exclusions>

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

 归类依赖:

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

 优化依赖:

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

         mvn dependency:list 查询所以依赖

         mvn dependency:tree 查询依赖树

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值