【聚合】类似的多个模块的项目,我们在构建时,会希望一次构建完成,而不是每个模块都执行mvn命令。Maven的聚合特性可是实现此需求。
【继承】在parent项目中定义一些依赖,可以避免在其它子项目中重复定义,其<packaging>的值也是 pom
在实际的项目开发中,一个项目都会分成多个模块。以一个基本的admin项目为例,通常会分为以下几个模块
在以上四个目录之上,可以构建一个新的项目admin,该项目只有一个pom文件,其特殊之处在于:
1. <packaging>的值 是 pom , 而不是默认的jar
2. 使用了modules元素,实现多模块的聚合
整个项目的结构如下:
admin
--- admin-common
--- admin-biz
--- admin-web
--- admin-parent
--- pom.xml
多模块的好处 1. 结构清晰,便于开发管理 2. 代码复用,比如新增一个admin-app项目,用于开发相关的接口数据,那么common,biz模块可以直接复用。
以下整理使用Maven创建多模块项目的步骤。
第一步 建立总的聚合文件夹 admin,里面只有一个 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.lmx.test</groupId>
<artifactId>admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Admin Project</name>
</project>
第二步 在admin目录下建立parent项目,里面也只有一个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.lmx.test</groupId>
<artifactId>admin-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Admin Parent</name>
</project>
第三步 分别创建common,biz,web项目
以common项目为例,在admin目录下执行mvn命令:
mvn archetype:generate -DgroupId=com.lmx.test -DartifactId=admin-common -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
如果要创建web项目,可以使用如下命令:
mvn archetype:generate -DgroupId=com.lmx.test -DartifactId=admin-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false
查看admin-common的pom文件,已经继承了parent:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lmx.test</groupId>
<artifactId>admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.lmx.test</groupId>
<artifactId>admin-common</artifactId>
<version>1.0-SNAPSHOT</version>
<name>admin-common</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
其中 groupId version等是可以继承的,所以可以删除掉!
查看admin下的pom文件:modules元素下已自动加入了3个子模块
<?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.lmx.test</groupId>
<artifactId>admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Admin Project</name>
<modules>
<module>admin-common</module>
<module>admin-biz</module>
<module>admin-web</module>
</modules>
</project>
至此,项目结构已创建完成,可以通过eclipse或者intellij导入项目 进行开发
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved