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


    原博文出于:http://blog.csdn.net/liutengteng130/article/details/41611755    感谢!

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

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

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

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

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

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

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

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

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

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

    Project A

    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>maven</groupId>
    <artifactId>A</artifactId>
    <packaging>pom</packaging>
    <name>A</name>
    <version>1.0</version>
    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>test</groupId>
    <artifactId>a</artifactId>
    <version>1.2</version>
    </dependency>
    <dependency>
    <groupId>test</groupId>
    <artifactId>b</artifactId>
    <version>1.0</version>
    <scope>compile</scope>
    </dependency>
    <dependency>
    <groupId>test</groupId>
    <artifactId>c</artifactId>
    <version>1.0</version>
    <scope>compile</scope>
    </dependency>
    <dependency>
    <groupId>test</groupId>
    <artifactId>d</artifactId>
    <version>1.2</version>
    </dependency>
    </dependencies>
    </dependencyManagement>
    </project>

     Project B

    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>maven</groupId>
    <artifactId>B</artifactId>
    <packaging>pom</packaging>
    <name>B</name>
    <version>1.0</version>
    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>maven</groupId>
    <artifactId>A</artifactId>
    <version>1.0</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    <dependency>
    <groupId>test</groupId>
    <artifactId>d</artifactId>
    <version>1.0</version>
    </dependency>
    </dependencies>
    </dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>test</groupId>
    <artifactId>a</artifactId>
    <version>1.0</version>
    <scope>runtime</scope>
    </dependency>
    <dependency>
    <groupId>test</groupId>
    <artifactId>c</artifactId>
    <scope>runtime</scope>
    </dependency>
    </dependencies>
    </project>

    区别:

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

  • 相关阅读:
    查询不同类别中最大的一条
    thinkphp模版调用函数方法
    mysql中explain的用法
    简易PHP多文件上传源码
    JS实现:鼠标悬停图片,图片由彩色变为灰色
    PHP分页基础教程之简单分页原理
    MYSQL建立索引需要注意以下几点!!!
    php_扑克类
    详细介绍Linux shell脚本基础学习(一)
    详细介绍Linux shell脚本基础学习(二)
  • 原文地址:https://www.cnblogs.com/zlslch/p/6033625.html
Copyright © 2020-2023  润新知