Spring Boot 项目打包和运行通常涉及到几个关键步骤。
1. 引入 Spring Boot Maven 插件
首先,你需要确保你的 pom.xml
文件包含了 Spring Boot Maven 插件,这个插件用于帮助你打包 Spring Boot 应用。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2. 打包项目
Spring Boot Maven 插件会创建一个可执行的 JAR 文件,其中包含了所有依赖和 Spring Boot 启动器。你可以通过以下方式之一来触发打包过程:
- 在 IntelliJ IDEA 中:
-
- 在右侧的 Maven 面板中找到
package
生命周期阶段并点击运行。
- 在右侧的 Maven 面板中找到
- 在命令行中:
-
- 进入项目根目录,运行
mvn clean package
命令。clean
是为了确保没有旧的构建输出干扰新构建。
- 进入项目根目录,运行
3. 查看构建输出
构建完成后,你会在项目的 target
目录下找到一个 .jar
文件,其名称类似于 yourprojectname-version.jar
。
4. 运行 JAR 文件
运行 JAR 文件可以使用以下命令:
java -jar /path/to/yourprojectname-version.jar
打包和运行的原理
Spring Boot Maven 插件在打包时做了以下几件事:
- 包含依赖:将项目的所有依赖项打包到单个 JAR 文件中,这样就不需要在目标环境中手动安装依赖。
- 嵌入容器:将一个轻量级的 Servlet 容器(如 Tomcat、Jetty 或 Undertow)嵌入到 JAR 文件中,因此不需要单独的 Web 服务器。
- 添加启动类:在 JAR 文件中包含一个 Manifest 文件,其中指定了主类(即带有
@SpringBootApplication
注解的类),使得 JAR 可以被 Java 虚拟机直接运行。
当使用 -jar
参数运行 JAR 文件时,JVM 将读取 JAR 文件中的 MANIFEST.MF
文件来查找主类,并使用 Spring Boot 的启动机制来初始化和运行应用。Spring Boot 应用会自动扫描和配置所有标注了 @Component
、@Service
、@Repository
和 @Controller
等注解的类,以及任何 @Configuration
类和 @Bean
方法。
示例
假设你有一个名为 MyApp
的 Spring Boot 项目,其主类为 MyAppApplication
,并且你已经在 pom.xml
中配置了 Spring Boot Maven 插件。在构建项目后,你可以在 target
目录下找到 myapp-0.0.1-SNAPSHOT.jar
文件。然后,你可以在命令行中使用以下命令运行它:
java -jar target/myapp-0.0.1-SNAPSHOT.jar
这将启动你的 Spring Boot 应用,并在本地机器上监听默认端口(通常是 8080),你可以在浏览器中访问 http://localhost:8080
来测试你的应用是否运行正常。