Maven继承
可继承的POM元素groupId:项目组ID,项目坐标核心元素version:项目版本,项目坐标核心元素description:项目描述信息organization:项目的组织信息inceptionYear:项目的创始年份url:项目的URL地址developers:项目开发者信息contributors:项目贡献者信息distributionManagement:项目部署配置issueManag
可继承的POM元素
groupId
:项目组ID,项目坐标核心元素version
:项目版本,项目坐标核心元素description
:项目描述信息organization
:项目的组织信息inceptionYear
:项目的创始年份url
:项目的URL地址developers
:项目开发者信息contributors
:项目贡献者信息distributionManagement
:项目部署配置issueManagement
:项目缺陷跟踪系统信息ciManagement
:项目持续集成系统信息scm
:项目版本控制系统信息mailingLists
:项目邮件列表信息properties
:自定义的Maven属性dependencies
:项目的依赖配置dependencyManagement
:项目的依赖管理配置repositories
:项目仓库配置build
:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等reporting
:包括项目的报告输出目录配置、报告插件配置等
依赖管理
在父模块中使用dependencyManagement
元素既能让子模块继承到父模块的依赖配置,又能保证子模块依赖使用的灵活性。在dependencyManagement
元素下的依赖声明不会引入实际的依赖,但是能够约束dependencies
下依赖的使用。
可以在父模块中使用dependencyManagement
依赖,在子模块中只用再声明依赖的groupId
和artifactId
即可,不需要再声明version
及其它已经再父模块设置的变量。
插件管理
pluginManagement
元素可以帮助管理插件,使用方法和dependencyManagement
一致。
反应堆及构建顺序
假如一个项目的结构如下:
进行构建可以得到下面输出:
输出的顺序就是构建的顺序。但是这个顺序和POM中写的不一致。
实际的构建顺序:Maven按序读取POM,如果POM中没有依赖的模块,就构建该模块。否则就构建其依赖的模块,如果该依赖还依赖于其它模块,则构建依赖的依赖。
因此,如果出现模块A依赖于B,而B又依赖于A的情况时,Maven就会报错。
裁剪反应堆
可以使用下面命令选择性构建模块,输入mvn -h
可以看到:
-am,--also-make
:同时构建所列出模块的依赖模块-amd,--also-make-dependents
:同时构建依赖于所列出模块的模块-pl,--projects <arg>
:构建指定的模块,模块见用逗号分隔
构建依赖于所列出模块的模块-pl,--projects <arg>
:构建指定的模块,模块见用逗号分隔-rf,--resume-from <arg>
:从指定的模块回溯反应堆
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)