一个多模块项目通过一个父POM 引用一个或多个子模块来定义。父项目,通过以下配置,将子项目关联。

[xhtml] view plaincopy
  1. <packaging>pom</packaging>
  2. <modules>
  3. <module>simple-weather</module>
  4. <module>simple-webapp</module>
  5. </modules>

其中值得注意的是<packaging>pom</packaging>这个父项目不像之前的项目那样创建一个JAR 或者一个WAR,它仅仅是一个引用其它Maven 项目的POM。pom.xml 中下一部分列出了项目的子模块。这些模块在modules元素中定义,每个modules 元素对应了一个simple-parent/目录下的子目录。Maven知道去这些子目录寻找pom.xml 文件,并且,在构建的simp-parent 的时候,它会将这些子模块包含到要构建的项目中。

当然,仅仅在父项目,配置子项目是不能够真正实现关联的,因为,这毕竟需要子项目的同意,故!子项目中需要配置:

[xhtml] view plaincopy
  1. <parent>
  2. <groupId>org.sonatype.mavenbook.ch06</groupId>
  3. <artifactId>simple-parent</artifactId>
  4. <version>1.0</version>
  5. </parent>

现在,通过父pom.xml将2个子项目进行了关联,那么我们需要从simple-parent 项目运行mvn clean install 命令,将2个子项目打包,编译为一个项目!

当Maven 执行一个带有子模块的项目的时候,Maven 首先载入父POM,然后定位所有的子模块POM。Maven 然后将所有这些项目的POM 放入到一个称为Maven 反应堆(Reactor)的东西中,由它负责分析模块之间的依赖关系。这个反应堆处理组件的排序,以确保相互独立的模块能以适当的顺序被编译和安装。

当,通过父pom.xml进行完成多个子项目的关联后,我们可以像前几章一样,分别进入某个单独的模块,进行运行,以移动程序!

注意:子项目的文件,位于父项目pom.xml同级,也就是,子项目的pom.xml位于父pom.xml的下一级文件中!

maven进阶:一个多模块项目相关推荐

  1. 转: maven进阶:一个多模块项目

    一个多模块项目通过一个父POM 引用一个或多个子模块来定义.父项目,通过以下配置,将子项目关联. [xhtml] view plaincopy <packaging>pom</pac ...

  2. maven 搭建ssm多模块项目(web+service)

    项目目录 ├─ssm-service │ ├─src │ │ ├─main │ │ │ ├─java │ │ │ │ └─com │ │ │ │ └─web │ │ │ │ └─impl │ │ │ ...

  3. Maven 单独构建多模块项目中的子模块

    在多模块的maven项目中 , 如果需要部署某个子模块 , 单独构建则会报错 , 如果构建整个项目 , 又会非常耗时 . maven为自定义构建部分项目提供了支持 : -pl, --projects构 ...

  4. Idea中Maven控制的多模块项目运行不到最新的代码,写的代码不生效问题解决方法记录。

    文章目录 写在前边 我的情况 解决办法 原因分析 写在前边 这个方法不一定适合所有情况,兄弟遇到这种情况首先需要保持冷静.可以先参考我们的情况是否一致,再决定是否看下去. 我的情况 idea版本:20 ...

  5. maven 单独构建多模块项目中的单个模块

    最近在公司的一个项目里用到了maven的多模块,由于项目比较大,每次修改后构建整个工程耗时太久,需要单独构建某个模块,mvn有支持的选项: -pl, --projectsBuild specified ...

  6. Linux中用maven创建一个简单的项目

    maven简介 maven是Apache旗下的管理java项目jar包的项目管理工具,有了它可以很方便的构建管理java项目. 安装maven maven下载地址 http://maven.apach ...

  7. (从零开始java开发) IDEA+MAVEN构建一个webapp骨架项目(解决一直downloading问题)...

    折腾了一段时间终于解决了, 可能是因为网络问题 xml一直没法访问 maven 骨架生成项目速度慢的令人发指,都在Generating project in Batch mode等待,Idea状态显示 ...

  8. 解决导入的maven聚合工程中子模块项目不显示

    导入的maven聚合工程中没有子模块,最主要的原因是没有选择正确的导入方式.应该选择maven projects来导入.

  9. maven 多模块项目,打包其中一个项目,Could not find artifact org.javaboy:commons:pom:1.0-SNAPSHOT

    背景 IDEA JDK 11 最近在创建一个多模块项目,其中模块中有单独的 Spring boot 项目,有其他模块引用的公用普通 maven 项目,我在项目中打包 Spring boot 项目,而此 ...

最新文章

  1. Office 2010 中的 UI 扩展性
  2. 第三篇 用户和权限
  3. 本科计算机科学与技术专业物理,中国工程物理研究院职工工学院计算机科学与技术(本科)专业介绍...
  4. TF之LiR:利用TF自定义一个线性分类器LiR对乳腺癌肿瘤数据集进行二分类预测(良/恶性)
  5. 【数据竞赛】“达观杯”文本智能处理挑战赛3
  6. 探秘Java中的String、StringBuilder以及StringBuffer
  7. vrep中thread scirpt以及simRemoteApi.start()的一点点微小的认识
  8. js获取页面 窗口的宽高
  9. 不使用临时变量交换两个数
  10. 74LS系列基本说明
  11. 小巫随笔12(致小巫逝去的童年),2021最新阿里Android面试流程
  12. oracle px execute reply,(转)PX Deq: Execute Reply 案例说明
  13. DML、DDL、DCL是什么?
  14. 我的第二个独立开发的邮箱类App—“简邮”(支持QQ、雅虎、阿里云、Outlook)
  15. windows触发器运行python脚本报错0x1问题解决办法
  16. 信息系统分析与设计 第十一章 系统详细设计
  17. CARLA自动驾驶模拟器操作
  18. 异常: Canonical names should be kebab-case(“-” separated), lowercase......... blablabla
  19. Navicat Premium for Mac 11.1.8 中文破解版
  20. android打包apk不能安装程序,Android Studio 打包apk后应用未安装

热门文章

  1. Qt Creator Qt Quick用户界面表单ui-forms
  2. C语言使用1到9求出所有k个数字的所有组合的算法(附完整源码)
  3. OpenGL 使用FDTD求解电磁波方程
  4. C语言通过用户输入将八进制转为二进制(附完整源码)
  5. QML基础类型之string
  6. 经典C语言程序100例之八六
  7. 03_TortoiseGit冲突和补丁演示,补丁冲突
  8. python数字图像处理(1):环境安装与配置
  9. Faster R-CNN论文详解
  10. Windows+VS2015编译caffe+py-faster-rcnn