文档章节

maven:一个多模块项目

l
 liuhao_sh
发布于 2015/10/22 17:34
字数 498
阅读 564
收藏 6

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

<packaging>pom</packaging>  
<modules>  
          <module>simple-weather</module>  
          <module>simple-webapp</module>  
</modules>

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

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

  1. <parent>  
            <groupId>org.sonatype.mavenbook.ch06</groupId>  
            <artifactId>simple-parent</artifactId>  
            <version>1.0</version>  
    </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的下一级文件中!


© 著作权归作者所有

l
粉丝 1
博文 88
码字总数 131723
作品 0
徐汇
私信 提问
加载中

评论(0)

MyEclipse的多模块Maven web(ssm框架整合)

  Maven的多模块可以让项目结构更明确,提高功能的内聚,降低项目的耦合度,真正的体现出分层这一概念。   我们在操作中,要明白为什么这样做,要了解到更深的层次,这样,我们就不限于个...

左羽
2018/04/08
0
0
在Eclipse中创建Maven多模块工程的例子

如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择,也非常cool!怎么在Eclipse里面创建多模块工程,以及需要注意哪些地方,我在这里做个简单...

凯文加内特
2015/05/07
1.8W
1
IntelliJ IDEA Spring Boot 2.x 多模块项目创建

在学习Spring Boot 2的时候顺便来学习创建下Maven下的多模块项目创建。方便学习使用整套开发流程。 第一步,检查IDEA,新版本的IDEA可能没有Spring Assistant可通过插件安装(Preferences->P...

被猪拱了的JAVA
2019/07/16
404
0
maven安装与创建多模块项目

maven是一个比较流行的项目管理工具,在最近参与的项目中,也使用了maven,本文主要对在项目中的使用做一个总结,主要涉及maven的安装于配置、maven创建多模块项目。 1、maven安装与配置 ma...

wangyan9110
2014/04/01
421
0
在Eclipse中创建Maven多模块工程

如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择,也非常cool!怎么在Eclipse里面创建多模块工程,以及需要注意哪些地方,我在这里做个简单...

孟飞阳
2016/07/29
147
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot日志之Logback(三)

多数人在开发过程中,会在Windows系统上进行开发,但是对于测试和生产环境,一般都采用的是Linux系统。如何在多环境之间切换而不需要频繁的修改Logback相关配置呢?这就要依赖于Logback多环境...

_廿_
8分钟前
27
0
我的linux学习之路(第六节)

===接第五节=== 4、while条件循环语句通过判断条件测试的真假决定是否继续执行命令,若条件测试为真则继续执行包含的命令序列,若条件为假则结束条件循环。命令格式:while条件测试操作...

mlgstor
10分钟前
34
0
跟我学习Java. 基础 18: ArrayList

ArrayList 1. 概念: 数组:一维数组 String[], 长度固定 超级数组-ArrayList(集合): 长度动态改变的 ArrayList比数组强大: 1、长度动态改变 2、更多更方便、强大的功能方法 综上: Arra...

漫路h
10分钟前
29
0
【剑指Offer】栈——获取栈的最小值

package cn.dzp.flyroc.offer;import java.util.Stack;public class StackMinDemo { /*题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数*/...

SeerRoc
15分钟前
26
0
《深入剖析Tomcat》读书笔记

《深入剖析Tomcat》读书笔记 第1章 Web服务器基础 了解Http协议,Tcp/IP协议 Socket类和ServerSocket类的区别及各种的Demo 参考资料 关于Socket和ServerSocket类详解 第2章 第3章 第4章 第5...

乔弗里
18分钟前
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部