Maven实战(二)---多模块开发---缺少Jar包

Maven里面的Jar包经常出现Missing的情况,无外乎几种情况:

1、私服里面没有相应的版本号的Jar包或者Jar包没写版本号

2Jar包引错了,相应的依赖关系也就错了

3、引入了依赖的Jar包,没被管理起来


       第一二个问题解决起来挺简单的,第三个问题对于不理解Maven的还需要解决一番。

       其实第三个问题就存在与Maven<dependencies>节点与<dependencymanagement>节点。

                     <dependencies>节点是项目依赖,项目所依赖的Jar包;

                    <dependencymanagement>节点是多模块Maven项目开发的时候的依赖管理控制的。

         在多模块开发的时候,利用项目继承可以将结构信息、部署信息,将共同的依赖放在一个父类中。每个子项目的pom继承父类的pom中的依赖关系。这样就解决了所有的子项目的依赖项统一版本。所以为了项目的正确运行,必须让而在父类中将这些Jar包管理起来,在父项目的pom中定义共同的依赖关系。这就是依赖管理。

 

来看一下这两个节点的代码:

Project A

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <project>  
  2.  <modelVersion>4.0.0</modelVersion>  
  3.  <groupId>maven</groupId>  
  4.  <artifactId>A</artifactId>  
  5.  <packaging>pom</packaging>  
  6.  <name>A</name>  
  7.  <version>1.0</version>  
  8.  <dependencyManagement>  
  9.    <dependencies>  
  10.      <dependency>  
  11.        <groupId>test</groupId>  
  12.        <artifactId>a</artifactId>  
  13.        <version>1.2</version>  
  14.      </dependency>  
  15.      <dependency>  
  16.        <groupId>test</groupId>  
  17.        <artifactId>b</artifactId>  
  18.        <version>1.0</version>  
  19.        <scope>compile</scope>  
  20.      </dependency>  
  21.      <dependency>  
  22.        <groupId>test</groupId>  
  23.        <artifactId>c</artifactId>  
  24.        <version>1.0</version>  
  25.        <scope>compile</scope>  
  26.      </dependency>  
  27.      <dependency>  
  28.        <groupId>test</groupId>  
  29.        <artifactId>d</artifactId>  
  30.        <version>1.2</version>  
  31.      </dependency>  
  32.    </dependencies>  
  33.  </dependencyManagement>  
  34. </project>  


Project B

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <project>  
  2.   <modelVersion>4.0.0</modelVersion>  
  3.   <groupId>maven</groupId>  
  4.   <artifactId>B</artifactId>  
  5.   <packaging>pom</packaging>  
  6.   <name>B</name>  
  7.   <version>1.0</version>  
  8.   <dependencyManagement>  
  9.     <dependencies>  
  10.       <dependency>  
  11.         <groupId>maven</groupId>  
  12.         <artifactId>A</artifactId>  
  13.         <version>1.0</version>  
  14.         <type>pom</type>  
  15.         <scope>import</scope>  
  16.       </dependency>  
  17.       <dependency>  
  18.         <groupId>test</groupId>  
  19.         <artifactId>d</artifactId>  
  20.         <version>1.0</version>  
  21.       </dependency>  
  22.     </dependencies>  
  23.   </dependencyManagement>  
  24.   <dependencies>  
  25.     <dependency>  
  26.       <groupId>test</groupId>  
  27.       <artifactId>a</artifactId>  
  28.       <version>1.0</version>  
  29.       <scope>runtime</scope>  
  30.     </dependency>  
  31.     <dependency>  
  32.       <groupId>test</groupId>  
  33.       <artifactId>c</artifactId>  
  34.       <scope>runtime</scope>  
  35.     </dependency>  
  36.   </dependencies>  
  37. </project>  

区别:

         <dependencies>中的jar直接加到项目中,管理的是依赖关系(如果有父pom,pom,则子pom中只能被动接受父类的版本);<dependencyManagement>主要管理版本,对于子类继承同一个父类是很有用的,集中管理依赖版本不添加依赖关系,对于其中定义的版本,子pom不一定要继承父pom所定义的版本。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值