用Maven生成Spring Boot多模块项目,可以按照以下步骤操作:
1. 创建父项目
首先,使用Maven的archetype
插件创建一个空的Maven项目作为父项目。打开终端,执行以下命令:
mvn archetype:generate -DgroupId=com.example -DartifactId=springboot-multi-module-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这将创建一个名为springboot-multi-module-demo
的项目,其groupId
为com.example
。
2. 进入父项目根目录
cd springboot-multi-module-demo
3. 删除父项目中的src目录
# Linux
rm -rf src
# OR Window
rmdir /S /Q src
4. 配置父项目的pom.xml
进入父项目目录,打开pom.xml
文件,将其配置为Spring Boot父项目,并设置打包方式为pom
。以下是一个示例pom.xml
:
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>springboot-multi-module-demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>springboot-multi-module-demo</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.3</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.4.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
5. 创建子模块
在父项目目录下,使用Maven命令创建子模块。以下是创建三个子模块的示例:
mvn archetype:generate -DgroupId=com.example -DartifactId=module-api -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=com.example -DartifactId=module-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=com.example -DartifactId=module-web -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
6. 配置子模块的pom.xml
每个子模块的pom.xml
需要继承父项目,并根据需要添加依赖。以下是每个子模块的pom.xml
示例:
(1)module-api
<?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>
<parent>
<groupId>com.example</groupId>
<artifactId>springboot-multi-module-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module-api</artifactId>
<dependencies>
<!-- 这里添加API模块所需的依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(2)module-service
<?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>
<parent>
<groupId>com.example</groupId>
<artifactId>springboot-multi-module-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module-service</artifactId>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>module-api</artifactId>
<version>${project.version}</version>
</dependency>
<!-- 这里添加Service模块所需的依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(3)module-web
<?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>
<parent>
<groupId>com.example</groupId>
<artifactId>springboot-multi-module-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module-web</artifactId>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>module-service</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 这里添加Web模块所需的依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
7. 构建和运行项目
在父项目目录下,使用以下命令构建整个项目:
mvn clean install
构建成功后,进入module-web
目录,使用以下命令运行Spring Boot应用:
mvn spring-boot:run
通过以上步骤,你就可以基于Maven创建一个Spring Boot多模块项目。