8.Spring Boot打包

2019年04月11日 17:55 · 阅读(457) ·

[目录]

参考

本文参考了 Ken 的博客。结合自己的实际操作过程写成。

Spring Boot应用 打包与部署教程

重要说明

本文是在 7.Spring Boot+Thymeleaf模板引擎开发Web应用 这个例子上进行操作的

开发环境

名称 版本
操作系统 Windows 10 X64
JDK JDK1.8(jdk-8u151-windows-x64)
IntelliJ IDEA IntelliJ IDEA 2018.3
Maven Maven 3.6.0
Spring Boot 1.5.6

Spring Boot打包与部署特点说明

Java Web 应用在 Spring Boot 之前,通常是打包成war(Web application ARchive)包,结合 Tomcat 来完成部署。

对于 Spring Boot,Spring 官方的建议是将 Spring Boot 应用打包成一个 fat jar(Java ARchive),通过 java 命令来启动运行。

这个 fat jar 会把 Tomcat 内置进来,所以部署时也不需要单独配置Tomcat。

Spring官方的打包说明:
https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#getting-started-first-application-executable-jar

1.打包基础依赖

打包工具的话如前面提到的,我们使用的是 Maven

首先需要在 pom.xml文件 build 节点增加如下配置:

  1. <build>
  2. <finalName>springboot-course</finalName>
  3. <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  4. <plugins>
  5. <!--maven 打包设置-->
  6. <plugin>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-maven-plugin</artifactId>
  9. </plugin>
  10. </pluginManagement>
  11. </build>

另外,需要确认pom.xml文件的package节点配置:

  1. <packaging>jar</packaging>

Maven 命令打包

准备工作

JDK 1.8 安装

Maven 安装与配置

进入项目目录

本次项目目录为 D:\v_hwhao\Code-Java-Test\springbootcourse

  1. D: & cd D:\v_hwhao\Code-Java-Test\springbootcourse

清理 package

  1. #清理已存在的编译结果
  2. mvn clean
  3. #清理成功后输出信息示例
  4. [INFO] ------------------------------------------------------------------------
  5. [INFO] BUILD SUCCESS
  6. [INFO] ------------------------------------------------------------------------
  7. [INFO] Total time: 7.887 s
  8. [INFO] Finished at: 2019-04-11T17:49:01+08:00
  9. [INFO] ------------------------------------------------------------------------

打包

  1. #打包
  2. mvn package
  3. #打包成功后输出信息示例
  4. [INFO] Building jar: D:\v_hwhao\Code-Java-Test\springbootcourse\target\springboot-course.jar
  5. [INFO] ------------------------------------------------------------------------
  6. [INFO] BUILD SUCCESS
  7. [INFO] ------------------------------------------------------------------------
  8. [INFO] Total time: 43.857 s
  9. [INFO] Finished at: 2019-04-11T17:56:49+08:00
  10. [INFO] ------------------------------------------------------------------------

IDEA + Maven插件打包

通过 视图->工具窗口->Maven呼出Maven工具栏

或者通过IDEA右侧工具栏呼出Maven工具栏

clean

点击 clean

输出:

  1. "D:\Program Files\Java\jdk1.8.0_151\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\v_hwhao\Code-Java-Test\springbootcourse "-Dmaven.home=D:\Program Files\apache-maven-3.6.0" "-Dclassworlds.conf=D:\Program Files\apache-maven-3.6.0\bin\m2.conf" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar=32746:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\bin" -Dfile.encoding=UTF-8 -classpath "D:\Program Files\apache-maven-3.6.0\boot\plexus-classworlds-2.5.2.jar" org.codehaus.classworlds.Launcher -Didea.version=2018.3 -s "D:\Program Files\apache-maven-3.6.0\conf\settings.xml" "-Dmaven.repo.local=D:\Program Files\Maven\Repository" clean
  2. [INFO] Scanning for projects...
  3. [INFO]
  4. [INFO] ----------< com.my.luoma.springboot-course:springboot-course >----------
  5. [INFO] Building springboot-course Maven Webapp 1.0-SNAPSHOT
  6. [INFO] --------------------------------[ jar ]---------------------------------
  7. [INFO]
  8. [INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ springboot-course ---
  9. [INFO] Deleting D:\v_hwhao\Code-Java-Test\springbootcourse\target
  10. [INFO] ------------------------------------------------------------------------
  11. [INFO] BUILD SUCCESS
  12. [INFO] ------------------------------------------------------------------------
  13. [INFO] Total time: 3.765 s
  14. [INFO] Finished at: 2019-04-12T11:57:24+08:00
  15. [INFO] ------------------------------------------------------------------------
  16. 进程已结束,退出代码 0

package

点击 package

输出:

  1. "D:\Program Files\Java\jdk1.8.0_151\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\v_hwhao\Code-Java-Test\springbootcourse "-Dmaven.home=D:\Program Files\apache-maven-3.6.0" "-Dclassworlds.conf=D:\Program Files\apache-maven-3.6.0\bin\m2.conf" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar=32882:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\bin" -Dfile.encoding=UTF-8 -classpath "D:\Program Files\apache-maven-3.6.0\boot\plexus-classworlds-2.5.2.jar" org.codehaus.classworlds.Launcher -Didea.version=2018.3 -s "D:\Program Files\apache-maven-3.6.0\conf\settings.xml" "-Dmaven.repo.local=D:\Program Files\Maven\Repository" package
  2. [INFO] Scanning for projects...
  3. [INFO]
  4. [INFO] ----------< com.my.luoma.springboot-course:springboot-course >----------
  5. [INFO] Building springboot-course Maven Webapp 1.0-SNAPSHOT
  6. [INFO] --------------------------------[ jar ]---------------------------------
  7. [INFO]
  8. [INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ springboot-course ---
  9. [INFO] Using 'UTF-8' encoding to copy filtered resources.
  10. [INFO] Copying 1 resource
  11. [INFO] Copying 3 resources
  12. [INFO]
  13. [INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ springboot-course ---
  14. [INFO] Changes detected - recompiling the module!
  15. [INFO] Compiling 10 source files to D:\v_hwhao\Code-Java-Test\springbootcourse\target\classes
  16. [INFO]
  17. [INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ springboot-course ---
  18. [INFO] Using 'UTF-8' encoding to copy filtered resources.
  19. [INFO] skip non existing resourceDirectory D:\v_hwhao\Code-Java-Test\springbootcourse\src\test\resources
  20. [INFO]
  21. [INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ springboot-course ---
  22. [INFO] No sources to compile
  23. [INFO]
  24. [INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ springboot-course ---
  25. [INFO] No tests to run.
  26. [INFO]
  27. [INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ springboot-course ---
  28. [INFO] Building jar: D:\v_hwhao\Code-Java-Test\springbootcourse\target\springboot-course.jar
  29. [INFO] ------------------------------------------------------------------------
  30. [INFO] BUILD SUCCESS
  31. [INFO] ------------------------------------------------------------------------
  32. [INFO] Total time: 9.045 s
  33. [INFO] Finished at: 2019-04-12T11:58:17+08:00
  34. [INFO] ------------------------------------------------------------------------
  35. 进程已结束,退出代码 0