一、POM.XML
1、ProjectObject Model:项目对象模型
2、基本项:
- project:pom.xml的顶级元素。
- groupId:指出创建这个工程的组织或团队的唯一标识。
- plugins:插件。
- artifactId:基本名称。
- packaging:类型(如JAR、WAR、EAR等等),默认是JAR,所有带有子模块的项目的packaging
都为pom。
- version:版本号。
- modelVersion:指出POM使用哪个版本的对象模型。
二、多模块
1、如何创建
参考:http://www.cnblogs.com/quanyongan/archive/2013/05/28/3103243.html
2、为什么要分多模块
软件公司通常的一种做法就是将多个项目构建到主要产品中。维护依赖关系链和一次性地构建整个产品足以成为一个挑战,但是如果使用Maven的话,事情将变得简单。如果您创建了一个指向其它子模块的 pom.xml父文件,Maven将为您处理整个构建过程。它将分析每个子模块的pom.xml文件,并且按照这些子模块的相互依赖顺序来构建项目。如果每个项目明确地指明它们的依赖项,那么子模块在父文件中的放置顺序是不造成任何影响的。但是考虑到其他的开发者,最好保证子模块在pom.xml父文件中 的放置顺序和您期望的子项目被构建的顺序一样。
参考:http://juvenshun.iteye.com/blog/305865
3、依赖另一个项目的子模块
A项目下有2个子模块A1,A2;B项目下有3个子模块B1,B2,B3;
A1依赖B1和A2; A2依赖B2,B3;
则,需要先运行B项目,成功之后再运行A项目。
三、依赖关系
1、简介
参看:管理依赖
2、scope参数
指定依赖项在何种阶段是所需的。
<dependency>
<groupId>aa</groupId>
<artifactId>aa</artifactId>
<version>1.5.1</version>
<scope>compile</scope>
</dependency>
——》参数值:
- compile:默认值。表示是所有任务所需的资源,会随项目一起发布。
- test:用于编译和运行测试代码时所需的资源,不会随项目发布。
- runtime:运行时所需的资源,如JDBC驱动。
- provided:类似compile,JDK部分或应用服务器的classpath所需的资源,期望JDK、容器
或使用者会提供这个依赖,如servlet.jar。
- system:类似provided,必须指定systemPath,需要显示提供依赖的jar,
maven不会在Repository中查找。