美文网首页
maven的聚合和继承

maven的聚合和继承

作者: 不知名的蛋挞 | 来源:发表于2018-09-26 10:00 被阅读29次

maven的聚合

有三个项目,我们分了三个模块编译:user-core user-log user-service给我们带来最大的问题就是得一个一个地编译,要是很多个模块那样更麻烦,效率很低。那怎么办呢?

我们可以在三个模块的根目录中创建pom.xml文件,通过这个文件集中编译里面的项目。这个Pom.xml不用写任何东西,就是用来做聚合操作的。

在eclipse的环境中显然没有办法把这个pom.xml放进去,所以我们可以建一个maven项目。步骤如下:

(1)创建一个简单的项目

跳过archetyoe selection,注意下面packaging

也可以在生成的pom文件中改:

<packaing>pom</packaing>

(2)修改pom.xml

在这个项目中我们只用改pom.xml的文件。目录结构如下:

|-- pom.xml
|-- module-a
    `-- pom.xml
|-- module-b
    `-- pom.xml
|-- module-c
    `-- pom.xml
|-- foo-all
    `-- pom.xml

那我们就在pom.xml文件中导入三个项目模块:

(3)把user-core user-log user-service三个项目的target排除掉,因为target是编译后的文件夹 ,无需进行提交。

maven的继承

在各个模块中的pom文件中存在着大量的重复,如何解决呢?我们可以让所有的项目继承于一个根类,在根类里面配置。

(1)创建根类项目

(2)在这个项目中,我们把三个项目共同有的东西全部拷贝进根项目的pom.xml,并用<dependencyManagement>进行依赖管理。

maven提供的dependencyManagement元素能让子模块继承到父模块的依赖配置,有能保证子模块的灵活性。dependencyManagement元素下的依赖声明不会引入实际的依赖,能约束dependencies下的依赖使用。如果子项目中不声明经过父项目dependencyManagement修饰的依赖,那么子项目就不会引入该依赖。

子项目如果要声明父项目中经过dependencyManagement修饰的依赖,只需要定义groupId和artifactId即可。

由于有了依赖管理的类,在模块类里面就不用配置版本version、作用域scope等信息,会自动在父类里面找。我们的版本统一在依赖管理中管理了。

(3)可以把公用的东西放在properties中,比如下图中,所有项目的junit版本号都是3.8.1,所有项目字符编码都是UTF-8,就可以放在properties中,然后用类似于EL表达式的表达式获取版本号。

(4)因为main目录和test目录对父的pom没什么作用,所以可以删除。

(5)然后把项目重复的东西全部删掉,在每个模块中然后加入parent标签,比如在user-service中:

一定要注意继承的绝对路径是在pom文件!

(6)我们可以把继承和聚合放在同一个类里面

相关文章

  • Maven学习(四) Maven 聚合 继承 单继承

    Maven学习(四) Maven 聚合 继承 单继承 聚合 Maven聚合:一个Maven项目,用来管理它的mav...

  • maven 继承和聚合

    目录 聚合1.1 为啥需要分模块开发?1.2 为啥需要聚合?1.3 如何使用聚合?1.4 实际方案(方案一...

  • Maven 聚合和继承

    Maven 聚合 该pom文件作为其他pom的容器运行,在pom文件的modules标签中引入我们想要聚合的各个模...

  • maven的聚合和继承

    maven的聚合 有三个项目,我们分了三个模块编译:user-core user-log user-service...

  • Maven的聚合和继承

    在这个技术飞速发展的时代,各类用户对软件的要求越来越高,软件本身也变得越来越复杂。因此,软件设计人员往往会采用各种...

  • (IX)Maven聚合和继承

    概述:当前软件设计人员会对软件划分模块,以得到更清晰的设计及更高的重用性。简单来说,Maven的聚合特性就是将项目...

  • maven聚合和继承(8)

    聚合(模块开发): 一个项目可能用多个模块组成 聚合只需要一次运行就可以构件完成 1.新建父模块 第一个要勾选 p...

  • (X)依赖管理

    通过Maven聚合和继承章节中POM可继承的元素我们看到有dependencies,说明依赖是会被继承的。Mave...

  • Java工程搭建方案 - Maven

    本篇讲讲Maven在实际项目中的应用,包含 Maven继承和聚合 微服务项目划分 Maven仓库配置和顺序 Mav...

  • 2022-06-09 Maven基础知识(6)- Maven 依

    Maven 依赖传递、POM 继承、Maven 聚合 查看内容请点击下面的链接: https://www.cnbl...

网友评论

      本文标题:maven的聚合和继承

      本文链接:https://www.haomeiwen.com/subject/hutdoftx.html