* 聚合
如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合
聚合配置代码
<modules>
<module>模块A</module>
<module>模块B</module>
<module>模块C</module>
</modules>
其中module的路径为相对路径。
* 继承
继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等
1 继承配置代码
<parent>
<groupId>com.hx.maven</groupId>
<artifactId>ParentProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../ParentProject/pom.xml</relativePath>
</parent>
2 继承代码中定义属性
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.9</junit.version>
<maven.version>0.0.1-SNAPSHOT</maven.version>
</properties>
访问属性的方式为${junit.version}
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
3 父模块用dependencyManagement进行管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.hx.maven</groupId>
<artifactId>helloMaven</artifactId>
<version>${maven.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
</dependencyManagement>
这样的好处是子模块可以有选择的继承,而不需要全部继承
* 聚合和继承总结
聚合主要为了快速构建项目,继承主要为了消除重复
* MVC模式和Web三层模式结合
在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,把每一个层次定义一个模块,这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易,今天我们就是使用Maven来构建以上的各个层。
项目结构如下:
shopping
|----pom.xml
|----hx-domain(model,bean)
|----pom.xml
|----hx-dao
|----pom.xml
|----hx-service
|----pom.xml
|----hx-web
|----pom.xml
* 创建shopping项目
将工程的src和其他的目录全部删除,只剩下pom.xml,修改pom.xml的<packageing>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hx.shopping</groupId>
<artifactId>shopping</artifactId>
<version>1.0-SNAPSHOT</version>
<name>shopping</name>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
* 创建module
* web层
* 模块使用maven-archetype-webapp
* service
模块使用maven-archetype-quickstart
* dao
模块使用maven-archetype-quickstart
创建过程和service层一样
* domain
模块使用maven-archetype-quickstart
创建过程和service层一样
* 编写登陆的例子
* 功能模块来分module
电商系统中如下module
shopping
|----pom.xml
|----shopping-common 公共部分
|----pom.xml
|----shopping-picture 图片
|----pom.xml
|----shopping-order订单
|----pom.xml
|----shopping-cart购物车
|----pom.xml
|----shopping-pay支付
|----pom.xml
|----shopping-product商品
|----pom.xml
|----shopping-price价格
|----pom.xml