使用 Maven 作为构建工具并创建一个最简单的 Spring Boot 项目时,以下是详细的步骤来帮助你完成操作。
1. 安装 Java 和 Maven
-
安装 Java:www.oracle.com/java/techno...
-
安装 Maven:maven.apache.org/download.cg...
- Windows 用户 :选择
apache-maven-3.9.9-bin.zip
。 - Linux/macOS 用户 :选择
apache-maven-3.9.9-bin.tar.gz
。 - 如果您仅需要使用 Maven 并且不打算修改源代码,选择 Binary 版本会更加方便快捷。
- Windows 用户 :选择
-
配置环境变量
- 打开系统环境变量设置 :在 Windows 10 或 Windows 11 上,右键点击 此电脑 或 计算机 ,然后选择 属性。
- 选择左侧的 高级系统设置。
- 在弹出的窗口中,点击 环境变量。
- 在环境变量窗口中,点击 系统变量 区域的 新建。
- 在编辑窗口中,点击 新建 ,然后添加 Maven 的
bin
目录路径。 - 点击 确定 保存。
-
验证安装:
java -version
mvn -version
2. 创建一个 Maven 项目
- 在命令行创建一个新的 Maven 项目:
ini
// Maven 会自动下载并创建一个简单的 Java 项目。
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
- 进入项目目录:cd my-app
- 构建项目:mvn clean install
- 运行项目:mvn exec:java
3. 配置 pom.xml
手动生成 pom.xml
文件
- 简单的模板:
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>my-app</name>
<description>Demo project for Maven</description>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
如果问题依然存在,您可以通过添加 -X
参数启用详细的调试信息,查看更详细的错误日志
详细解析 pom.xml
文件
- XML 声明和命名空间
<?xml version="1.0" encoding="UTF-8"?>
:这表示 XML 文件的版本和编码格式。<project xmlns="http://maven.apache.org/POM/4.0.0"
:这里定义了 XML 文件的命名空间xsi:schemaLocation
:定义了 XML 模式的位置
modelVersion
- 这是 Maven POM 文件的版本号
groupId
,artifactId
,version
groupId
:定义了项目的组名,通常是公司、组织或开发者的域名倒写。例如com.example
。artifactId
:项目的唯一标识符。在同一组下,artifactId
必须唯一。这里的my-app
是项目名称。ersion
:项目的版本号。1.0-SNAPSHOT
表示这是一个尚未完成的开发版本,通常会频繁更新。Maven 会根据SNAPSHOT
标记来处理版本。
packaging
- 定义了项目的打包类型。常见的有
jar
、war
、pom
等,表示项目的输出文件类型。
name
和description
name
:项目的名称,通常是artifactId
的描述。description
:项目的简短描述,帮助其他开发者理解项目的功能或目的。
dependencies
和dependency
dependencies
:包含了该项目的所有依赖项。dependency
:每个依赖的具体信息。包括:groupId
:依赖的组织标识符,这里是junit
。artifactId
:依赖的项目标识符,这里是junit
。version
:依赖的版本号,这里是4.13.1
。scope
:表示依赖的作用范围。test
表示该依赖仅在测试时使用,不会包含在最终的构建结果中。
4. 创建 Spring Boot 启动类
typescript
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SimpleApplication {
public static void main(String[] args) {
SpringApplication.run(SimpleApplication.class, args);
}
}
5. 创建 Controller 类
定义一个简单的 HTTP 接口来处理前端的请求。
kotlin
package com.example.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
6. 配置 application.properties
(可选)
- 可以忽略配置文件,默认情况下 Spring Boot 会监听 8080 端口。
- 可以进行服务器配置、日志配置、数据库配置、Spring JPA 配置、Spring MVC 配置(允许跨域请求)、文件上传配置
7. 构建和运行项目
shell
# 构建项目
mvn clean install
# 启动项目
mvn spring-boot:run
# 打开浏览器,访问 `http://localhost:8080/hello`。
mvn clean install
的作用
clean
阶段 :删除项目中target
目录下的所有构建文件install
阶段
- 编译代码 :Maven 会根据
src/main/java
目录中的 Java 文件进行编译。 - 运行测试 :Maven 会运行位于
src/test/java
目录中的所有单元测试。如果你有 JUnit 测试,Maven 会在这一步运行它们。 - 打包项目 :根据
pom.xml
中的配置,Maven 会将代码打包成 JAR 文件(如果配置了jar
打包类型)。 - 安装到本地仓库 :打包完成后,Maven 会将该 JAR 文件安装到本地 Maven 仓库(默认为
~/.m2/repository
),以便其他项目可以引用。
mvn spring-boot:run
执行过程
- Maven 会调用
spring-boot-maven-plugin
:这个插件会首先编译项目并打包成可执行的 JAR 文件,然后运行该文件。 - Spring Boot 会加载主类
SimpleApplication.java
,并从该类开始初始化 Spring 应用。 SimpleApplication.java
使用@SpringBootApplication
注解,标识为应用的主配置类,启动 Spring 容器。- 嵌入式容器启动: 引入
spring-boot-starter-web
后,Spring Boot 会自动集成嵌入式 Tomcat 容器,项目可以直接运行。 - Spring 容器初始化: Spring Boot 扫描整个应用的包(包括
com.example.controller
包)并自动注册所有带有@Controller
或@RestController
注解的类。
8. 其他问题
pom.xml
文件发生变动后为什么需要重新执行mvn clean install
?
- 是因为
pom.xml
是 Maven 项目的核心配置文件,任何对该文件的修改都会影响项目的构建和依赖。
- 重新执行
mvn clean install
是否需要重新下载依赖?
- 如果你没有修改依赖(例如只修改了项目的
name
或者其他非依赖项的配置),则 Maven 会跳过重新下载依赖的步骤,只重新编译和构建项目。
- 引入
spring-boot-starter-web
前后的变化
功能 | 引入前 | 引入后 |
---|---|---|
Web 容器 | 需要手动配置嵌入式 Web 容器(如 Tomcat) | 自动配置嵌入式 Tomcat,默认使用,无需手动配置 |
依赖 | 需要手动引入 spring-webmvc 和 tomcat 等依赖 |
只需要引入 spring-boot-starter-web ,自动包含 Web 相关的所有依赖 |
控制器注解 | 使用 @Controller 配合 @RequestMapping 来处理请求 |
使用 @RestController 简化 HTTP 请求处理,自动支持 JSON 序列化 |
Web 配置 | 需要手动配置 Spring MVC 和 DispatcherServlet 等组件 | 自动配置 Spring MVC 和相关组件,无需手动配置 |
请求响应格式 | 需要手动处理请求和响应(如 @ResponseBody ) |
自动支持 JSON 响应,省去 @ResponseBody 等配置 |