[目录]
参考
本文参考了 Ken 的博客。结合自己的实际操作过程写成。
重要说明
本文是在 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 节点增加如下配置:
<build>
<finalName>springboot-course</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!--maven 打包设置-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</pluginManagement>
</build>
另外,需要确认pom.xml
文件的package
节点配置:
<packaging>jar</packaging>
Maven 命令打包
准备工作
进入项目目录
本次项目目录为 D:\v_hwhao\Code-Java-Test\springbootcourse
D: & cd D:\v_hwhao\Code-Java-Test\springbootcourse
清理 package
#清理已存在的编译结果
mvn clean
#清理成功后输出信息示例
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.887 s
[INFO] Finished at: 2019-04-11T17:49:01+08:00
[INFO] ------------------------------------------------------------------------
打包
#打包
mvn package
#打包成功后输出信息示例
[INFO] Building jar: D:\v_hwhao\Code-Java-Test\springbootcourse\target\springboot-course.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 43.857 s
[INFO] Finished at: 2019-04-11T17:56:49+08:00
[INFO] ------------------------------------------------------------------------
IDEA + Maven插件打包
通过 视图
->工具窗口
->Maven
呼出Maven工具栏
或者通过IDEA右侧工具栏呼出Maven工具栏
clean
点击 clean
输出:
"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
[INFO] Scanning for projects...
[INFO]
[INFO] ----------< com.my.luoma.springboot-course:springboot-course >----------
[INFO] Building springboot-course Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ springboot-course ---
[INFO] Deleting D:\v_hwhao\Code-Java-Test\springbootcourse\target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.765 s
[INFO] Finished at: 2019-04-12T11:57:24+08:00
[INFO] ------------------------------------------------------------------------
进程已结束,退出代码 0
package
点击 package
输出:
"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
[INFO] Scanning for projects...
[INFO]
[INFO] ----------< com.my.luoma.springboot-course:springboot-course >----------
[INFO] Building springboot-course Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ springboot-course ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ springboot-course ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 10 source files to D:\v_hwhao\Code-Java-Test\springbootcourse\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ springboot-course ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\v_hwhao\Code-Java-Test\springbootcourse\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ springboot-course ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ springboot-course ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ springboot-course ---
[INFO] Building jar: D:\v_hwhao\Code-Java-Test\springbootcourse\target\springboot-course.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.045 s
[INFO] Finished at: 2019-04-12T11:58:17+08:00
[INFO] ------------------------------------------------------------------------
进程已结束,退出代码 0