SpringBoot Maven与Gradle构建工具
SpringBoot 支持 Maven 和 Gradle 作为构建工具。
Maven基础配置
pom.xml结构
XML
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<!-- 继承SpringBoot父项目 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
</parent>
<!-- 项目坐标 -->
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<!-- 依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 构建插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Maven常用命令
| 命令 | 作用 |
|---|---|
| mvn clean | 清理target目录 |
| mvn compile | 编译源代码 |
| mvn test | 运行测试 |
| mvn package | 打包项目 |
| mvn install | 安装到本地仓库 |
| mvn spring-boot:run | 运行项目 |
Bash
# 清理并打包
mvn clean package
# 跳过测试打包
mvn clean package -DskipTests
# 运行项目
mvn spring-boot:run
Gradle基础配置
build.gradle结构
groovy
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.0'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'com.example'
version = '1.0.0'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
Gradle常用命令
| 命令 | 作用 |
|---|---|
| gradle clean | 清理build目录 |
| gradle build | 编译打包 |
| gradle bootRun | 运行项目 |
| gradle test | 运行测试 |
Bash
# 清理并构建
gradle clean build
# 跳过测试构建
gradle build -x test
# 运行项目
gradle bootRun
Maven vs Gradle对比
| 特性 | Maven | Gradle |
|---|---|---|
| 配置格式 | XML | Groovy DSL |
| 构建速度 | 一般 | 更快 |
| 灵活性 | 较低 | 更高 |
| 学习难度 | 简单 | 稍复杂 |
| 生态成熟度 | 成熟 | 较新 |
添加依赖方式
Maven
XML
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Gradle
groovy
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
多模块项目
Maven多模块
XML
<!-- 父pom.xml -->
<modules>
<module>module-core</module>
<module>module-web</module>
<module>module-service</module>
</modules>
Gradle多模块
groovy
// settings.gradle
include 'module-core', 'module-web', 'module-service'
依赖范围
Maven scope
| scope | 说明 |
|---|---|
| compile | 编译和运行都使用 |
| provided | 编译使用,运行不打包 |
| runtime | 只在运行时使用 |
| test | 只在测试时使用 |
Gradle配置
| 配置 | 说明 |
|---|---|
| implementation | 编译和运行 |
| compileOnly | 只编译 |
| runtimeOnly | 只运行 |
| testImplementation | 测试使用 |
要点总结
- Maven配置简单,广泛使用
- Gradle灵活高效,适合大型项目
- spring-boot-starter-parent简化依赖版本管理
- spring-boot-maven-plugin支持打包可执行JAR
📝 发现内容有误?点击此处直接编辑