Maven 是 Java 生态中最流行的构建和依赖管理工具,广泛用于企业级项目的构建、依赖管理、测试、打包、部署和 CI/CD 集成。对于大型企业项目,Maven 提供了一整套标准化的构建流程,并支持 多模块(Multi-Module) 项目,使得团队可以高效协作、管理复杂的应用。
多模块项目(Maven Multi-Module Project)是一种 父 POM 管理多个子模块 的组织方式,在企业级应用中,通常包含以下多个子模块:
enterprise-project/
├── pom.xml # 父 POM(管理所有子模块)
├── common/ # 公共工具模块
│ ├── src/main/java/
│ ├── pom.xml
├── dao/ # 数据访问层
│ ├── src/main/java/
│ ├── pom.xml
├── service/ # 业务逻辑层
│ ├── src/main/java/
│ ├── pom.xml
├── web/ # Web 应用层
│ ├── src/main/java/
│ ├── pom.xml
父项目主要用于管理多个子模块,包含 pom.xml
但 不包含业务代码。
enterprise-project/pom.xml
(父 POM)
<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.0modelVersion>
<groupId>com.companygroupId>
<artifactId>enterprise-projectartifactId>
<version>1.0.0version>
<packaging>pompackaging>
<modules>
<module>commonmodule>
<module>daomodule>
<module>servicemodule>
<module>webmodule>
modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>5.3.9version>
dependency>
dependencies>
dependencyManagement>
project>
packaging
为 pom
,表示此项目只是一个 父项目,用于管理子模块。modules
列出了所有子模块,它们的 pom.xml
会继承此父 POM。common
(公共工具类模块)common/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.0modelVersion>
<parent>
<groupId>com.companygroupId>
<artifactId>enterprise-projectartifactId>
<version>1.0.0version>
parent>
<artifactId>commonartifactId>
<dependencies>
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.12.0version>
dependency>
dependencies>
project>
parent
指定继承父 POM(enterprise-project
)。commons-lang3
可被其他子模块使用。dao
(数据访问模块)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.0modelVersion>
<parent>
<groupId>com.companygroupId>
<artifactId>enterprise-projectartifactId>
<version>1.0.0version>
parent>
<artifactId>daoartifactId>
<dependencies>
<dependency>
<groupId>com.companygroupId>
<artifactId>commonartifactId>
<version>1.0.0version>
dependency>
dependencies>
project>
common
模块,共享公共工具类。service
(业务逻辑层)service/pom.xml
<project>
<parent>
<groupId>com.companygroupId>
<artifactId>enterprise-projectartifactId>
<version>1.0.0version>
parent>
<artifactId>serviceartifactId>
<dependencies>
<dependency>
<groupId>com.companygroupId>
<artifactId>daoartifactId>
<version>1.0.0version>
dependency>
dependencies>
project>
dao
,可访问数据库层数据。web
(Web 层)web/pom.xml
<project>
<parent>
<groupId>com.companygroupId>
<artifactId>enterprise-projectartifactId>
<version>1.0.0version>
parent>
<artifactId>webartifactId>
<packaging>warpackaging>
<dependencies>
<dependency>
<groupId>com.companygroupId>
<artifactId>serviceartifactId>
<version>1.0.0version>
dependency>
dependencies>
project>
packaging
为 war
,表示 Web 应用。在 enterprise-project
目录执行:
mvn clean install
target/
common
→ dao
→ service
→ web
mvn install
一键构建整个企业应用,提高开发效率。Maven 让企业级 Java 项目开发变得更加高效、稳定和可维护!