Maven 的模块化开发示例

Maven 的模块化开发是一种非常有效的软件开发方式,它允许你将一个大型的项目分割成多个更小、更易于管理的模块(modules)。每个模块都可以独立地构建、测试和运行,这不仅提高了开发效率,也便于团队协作和项目的维护。以下是如何在 Maven 中实现模块化开发的基本步骤:

1. 创建父项目

首先,你需要创建一个 Maven 项目作为所有模块的父项目。父项目通常不包含实际的业务代码,而是包含公共的依赖管理、插件配置等信息,以便子模块继承。

我们定义一个 UserServer的父模块;然后定义一个user-api 子模块,一个 user-server子模块。

在 pom.xml 文件中,你可以通过 标签指定子模块:

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>org.example</groupId>
  <artifactId>UserServer</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>UserServer</name>
  <url>http://maven.apache.org</url>
  <modules>
    <module>user-api</module>
    <module>user-server</module>
  </modules>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

2. 创建子模块

在父项目的根目录下,为每个业务模块创建相应的文件夹,并在这些文件夹中创建 Maven 项目。这些子模块的 pom.xml 文件会继承父项目的配置,并可以添加自己特有的配置。

例如,user-api 的 pom.xml 可能如下所示:

user-api:

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>org.example</groupId>
        <artifactId>UserServer</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>user-api</artifactId>
    <packaging>jar</packaging>

    <name>user-api</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

user-server:

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>org.example</groupId>
        <artifactId>UserServer</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>user-server</artifactId>
    <packaging>jar</packaging>

    <name>user-server</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

3. 构建项目

在父项目的根目录下,你可以使用 Maven 命令来构建整个项目,Maven 会自动处理所有子模块的构建。例如,运行 mvn clean install 会清理并安装所有模块到本地 Maven 仓库。

4. 依赖管理

由于所有模块都继承自同一个父 POM,你可以在父 POM 中定义公共的依赖,这样所有子模块都可以自动继承这些依赖,无需在每个模块的 POM 文件中重复声明。

5. 插件配置

类似地,你也可以在父 POM 中配置 Maven 插件,以便所有子模块共享相同的插件配置。不过,每个子模块仍然可以覆盖父 POM 中的插件配置,以满足特定的需求。

6.使用 IDEA的操作过程:

  • File > New > Project 创建一个名为 UserServer 的项目:

  • 右键项目名称,New > Module

    最后的项目结构就是:

结论

Maven 的模块化开发通过父项目和子模块的方式,有效地组织和管理了大型项目。它简化了依赖管理和构建过程,提高了开发效率和项目的可维护性。

相关推荐
S-X-S29 分钟前
算法总结-数组/字符串
java·数据结构·算法
linwq834 分钟前
设计模式学习(二)
java·学习·设计模式
桦说编程1 小时前
CompletableFuture 超时功能有大坑!使用不当直接生产事故!
java·性能优化·函数式编程·并发编程
@_@哆啦A梦1 小时前
Redis 基础命令
java·数据库·redis
字节全栈_rJF2 小时前
性能测试 —— Tomcat监控与调优:status页监控_tomcat 自带监控
java·tomcat
爱编程的小新☆3 小时前
Java篇之继承
java·开发语言
gentle coder3 小时前
Redis_Redission的入门案例、多主案例搭建、分布式锁进行加锁、解锁底层源码解析
java·redis·分布式
萝卜青今天也要开心3 小时前
读书笔记-《Redis设计与实现》(一)数据结构与对象(下)
java·数据结构·redis·学习
customer084 小时前
【开源免费】基于SpringBoot+Vue.JS景区民宿预约系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
太阳伞下的阿呆4 小时前
排查定位jar包大文件
java·centos·jar