Maven

聚合模块知道它聚合了哪些模块,但是被聚合的模块不知道聚合模块的存在;

父模块不知道子模块的存在,但是子模块都必须知道自己的父模块是谁。

聚合

什么是聚合?

将多个项目同时运行就称为聚合。

如何实现聚合?
idea中new module后,父模块中会自动创建
只需在pom中作如下配置即可实现聚合:

<modules>
    <module>web-connection-pool</module>
    <module>web-java-crawler</module>
</modules>

继承

什么是继承?

在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom即可。

如何实现继承?

父pom配置:将需要继承的Jar包的坐标放入标签即可。

<dependencyManagement>
    <dependencies>
          <dependency>
            <groupId>cn.missbe.web.search</groupId>
            <artifactId>resource-search</artifactId>
            <packaging>pom</packaging>
            <version>1.0-SNAPSHOT</version>
          </dependency> 
    </dependencies>
</dependencyManagement>

子pom配置:(idea中会自动创建该parent项)
此外由于已有groupid和version,只需声明artifactId

<parent>
      <groupId>父pom所在项目的groupId</groupId>
      <artifactId>父pom所在项目的artifactId</artifactId>
      <version>父pom所在项目的版本号</version>
</parent>
 <parent>
      <artifactId>resource-search</artifactId>
      <groupId>cn.missbe.web.search</groupId>
      <version>1.0-SNAPSHOT</version>
</parent>

dependencies与dependencyManagement区别

dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)

**dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。**如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

<packaging>pom</packaging>是什么意思?

答:

以下配置<packaging>pom</packaging>的意思是使用maven分模块管理,都会有一个父级项目,pom文件一个重要的属性就是packaging(打包类型),一般来说所有的父级项目的packaging都为pom,packaging默认类型jar类型,如果不做配置,maven会将该项目打成jar包。

Maven POM POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值