加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

[置顶] Maven实战----多模块开发---缺少Jar包

发布时间:2020-12-13 20:21:52 所属栏目:PHP教程 来源:网络整理
导读:Maven 里面的 Jar 包常常出现 Missing 的情况,无外乎几种情况: 1 、私服里面没有相应的版本号的 Jar 包或 Jar 包没写版本号 2 、 Jar 包引错了,相应的依赖关系也就错了 3 、引入了依赖的 Jar 包,没被管理起来 第12个问题解决起来挺简单的,第3个问题对不

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

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

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

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


       第12个问题解决起来挺简单的,第3个问题对不理解Maven的还需要解决1番。

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

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

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

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

 

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

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>主要管理版本,对子类继承同1个父类是很有用的,集中管理依赖版本不添加依赖关系,对其中定义的版本,子pom不1定要继承父pom所定义的版本。



(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读