1.聚合的概念
把项目的各个模块(子工程)聚合在一起构建。一般用于分模块开发,最后整体打包发布
Maven Project独立运行
Maven Module无法独立运行
2.聚合工程开发步骤
1.根项目是一个pom项目。
2.子模块:Maven Module
3.每个模块写完后需要上传到私服(略)
4.打包,需要整体打包找到最后的war项目使用Tomcat加载
实际中,我们会将一些庞大的项目拆分为若干模块进行开发
三层+MVC 如下:
父工程maven-core
所有的项目所需要的jar包都放在父工程的pom.xml下
子工程model-------jar
子工程dao----------jar
子工程service------jar
子工程web----------war
注意:聚合打包时(install),选择父工程进行聚合
发布到tomcat运行时(tomcat7:run),选择web工程进行发布运行
3.工程聚合和继承的区别
聚合是为了方便快速构件项目。对于聚合模块来说,它知道有哪些被聚合的模块,但那些模块不知道这个聚合模块的存在
继承是为了消除重复配置。对于继承关系的父POM来说,它不知道有哪些子模块继承于它,但是子模块必须知道自己的父POM是什么
model工程的pom.xml如下:
<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>
<parent>
<!--groupid是项目组织唯一的标识符,自定义-->
<groupId>com.qf</groupId>
<artifactId>父工程项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>model层项目名</artifactId>
</project>
dao工程的pom.xml如下:
<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>
<parent>
<groupId>com.qf</groupId>
<artifactId>父工程项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>dao层项目名</artifactId>
<dependencies>
<dependency>
<groupId>com.qf</groupId>
<artifactId>model层项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
service工程的pom.xml如下:
<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>
<parent>
<groupId>com.qf</groupId>
<artifactId>父工程项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>service层项目名</artifactId>
<dependencies>
<dependency>
<groupId>com.qf</groupId>
<artifactId>dao层项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
web工程的pom.xml如下:
<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>
<parent>
<groupId>com.qf</groupId>
<artifactId>父工程项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>web层项目名</artifactId>
<packaging>war</packaging>
<dependencies>
<!--servlet依赖的jar包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!-- 该包在发布到tomcat后,该包将有tomcat提供 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.qf</groupId>
<artifactId>service层项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--项目打成的包的名字 -->
<path>/mvn-core</path>
<!--tomcat的端口 -->
<port>8080</port>
<!--设置tomcat服务器编码 -->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
父工程maven-core的pom.xml如下:
<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.qf</groupId>
<artifactId>父工程项目名</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>model层项目名</module>
<module>dao层项目名</module>
<module>service层项目名</module>
<module>web层项目名</module>
</modules>
</project>