转: maven进阶:一个多模块项目
一个多模块项目通过一个父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 的时候,它会将这些子模块包含到要构建的项目中。
当然,仅仅在父项目,配置子项目是不能够真正实现关联的,因为,这毕竟需要子项目的同意,故!子项目中需要配置:
- <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的下一级文件中!
原文链接:http://blog.csdn.net/eclipser1987/article/details/5739177
转: maven进阶:一个多模块项目的更多相关文章
- maven进阶:一个多模块项目
一个多模块项目通过一个父POM 引用一个或多个子模块来定义.父项目,通过以下配置,将子项目关联. <packaging>pom</packaging> <modules& ...
- Maven环境下多模块项目构建
Maven环境下多模块项目构建 一.新建项目 1.建立我们的父模块par 2.建立我们的子模块dao层 3.建立我们的子模块service层 4.建立我们的子模块web层 5.全部配置完成后,怎么把我 ...
- 如何用Maven创建一个普通Java项目
一下内容包括:用Maven创建一个普通Java项目,并把该项目转成IDEA项目,导入到IDEA,最后把这个项目打包成一个jar文件. 有时候运行mvn命令失败,重复运行几次就OK了,无解(可能因为网络 ...
- Maven手动创建多模块项目
Maven手动创建多模块项目 我要创建的项目名称是:unicorn,项目包含两个模块,分别是unicorn-core和unicorn-web.包的路径是com.goldpalm.tour. 项目创建流 ...
- maven 单独构建多模块项目中的单个模块
maven 单独构建多模块项目中的单个模块, maven选项说明 -pl, --projects Build specified reactor projects instead of all pro ...
- Maven单独构建多模块项目中的单个模块
Maven单独构建多模块项目中的单个模块 说明: 1.可能存在的场景,多模块项目没有互相引用,那么此时可以单独构建单个项目,指定到子模块的pom.xml文件即可完成编译. 2.如果多模块项目各自都 ...
- 分布式架构--第一篇--项目拆分(maven命令生成多模块项目)
预览生成的项目结构: ying-yue-parent // 顶级总编译控制模块 ying-yue-lib // jar模块 ying-yue-model // 模型对象模块 ying-yue-dao ...
- maven搭建企业级多模块项目
1.创建一个maven项目 选择pom 完成 2.创建模块 项目右键选择module,创建模块.创建子模块 其余的打包时都为jar 地址:https://github.com/LeviFromCN/m ...
- Maven新建一个Spring MVC项目
新建一个Maven项目,选择archetypes为maven-archetype-webapp,相关的名称按个人习惯取,我这里取Group Id:moonlit-groupArtifact Id:mo ...
随机推荐
- 深搜+剪枝 POJ 1724 ROADS
POJ 1724 ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12766 Accepted: 4722 D ...
- tarjan算法求桥双连通分量 POJ 3177 Redundant Paths
POJ 3177 Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12598 Accept ...
- HDU 1828 / POJ 1177 Picture --线段树求矩形周长并
题意:给n个矩形,求矩形周长并 解法:跟求矩形面积并差不多,不过线段树节点记录的为: len: 此区间线段长度 cover: 此区间是否被整个覆盖 lmark,rmark: 此区间左右端点是否被覆盖 ...
- Finger Gestures 3.1
3.x自定义手势 Finger Gestures用起来非常爽,除了有常用的手势之外,3.x的版本还增加了自定义手势! 官方Document:http://fingergestures.fatalfro ...
- Linux安装、卸载软件
在linux环境中,尤其是cenos中安装过一些软件,一般是二进制安装与源码安装,现小结一下linux中的安装与卸载. 一.通常Linux应用软件的安装包有三种: 1) tar包,如software- ...
- 利用appscan进行自动化定期安全测试
Appscan的强大众所周知,如果可以自动执行定期安全测试,岂不是美事一件? 事实上,appscan提供了计划扫描的选项,配合windows的计划任务,可以按需设定. 1.打开appscan中的“工具 ...
- java9-9 匿名内部类
1. 匿名内部类 就是内部类的简化写法. 前提:存在一个类或者接口 这里的类可以是具体类也可以是抽象类. 格式: new 类名或者接口名(){ 重写方法; } new Xxx()是创建了一个对象,而抽 ...
- iOS开发如何提高(from 唐巧的博客)
http://blog.devtang.com/blog/2014/07/27/ios-levelup-tips/
- VC2010中去掉红绝下划线
1. 在VC2010 的tools/中找到editior. 已经找到c/c++->advanced->IntelliSense->Disable IntelliSence->T ...
- UICollectionView使用
本文原文 原文转自 1.1. Collection View 全家福: UICollectionView, UITableView, NSCollectionView n 不直接等效于NSColl ...