SpringBoot打包部署

超、凢脫俗 2021-11-29 14:50 563阅读 0赞

jar包

SpringBoot官方建议通过SpringBoot提供的打包插件将项目打包成一个可执行的jar包(在这个jar包里面已经内置了Tomcat,可以直接当一个web跑),方便部署和管理。

在pom.xml文件中添加编译插件(通过start.spring.io创建的工程默认就有)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <!-- ... -->
  5. <packaging>jar</packaging>
  6. <!-- ... -->
  7. <build>
  8. <plugins>
  9. <plugin>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-maven-plugin</artifactId>
  12. <configuration>
  13. <fork>true</fork>
  14. </configuration>
  15. </plugin>
  16. </plugins>
  17. </build>
  18. </project>

然后直接通过下面两个命令行命令打包、运行项目

  1. $ mvn clean package
  2. $ java -jar target/mymodule-0.0.1-SNAPSHOT.jar

注意, 如果你使用了src/main/webapp目录,打成jar包会忽略掉该目录下的所有文件,这种情况下只能选择打war包的方式

war包

第一步,修改pom.xml

示例配置:
pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <!-- ... -->
  5. <packaging>war</packaging>
  6. <!-- ... -->
  7. <dependencies>
  8. <dependency>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter-web</artifactId>
  11. </dependency>
  12. <!-- 必须将tomcat标记为provided,阻止将内置的tomcat包打到war包中,以防与外部tomcat容器中的包冲突 -->
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-tomcat</artifactId>
  16. <scope>provided</scope>
  17. </dependency>
  18. <!-- ... -->
  19. <!-- 支持JSP -->
  20. <dependency>
  21. <groupId>org.apache.tomcat.embed</groupId>
  22. <artifactId>tomcat-embed-jasper</artifactId>
  23. <scope>provided</scope>
  24. </dependency>
  25. <!-- ... -->
  26. </dependencies>
  27. <build>
  28. <plugins>
  29. <plugin>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-maven-plugin</artifactId>
  32. <configuration>
  33. <fork>true</fork>
  34. </configuration>
  35. </plugin>
  36. </plugins>
  37. </build>
  38. </project>

第二步 注册启动类

创建 ServletInitializer.java,继承 SpringBootServletInitializer ,覆盖 configure(),把启动类 Application 注册进去。外部 Web 应用服务器构建 Web Application Context 的时候,会把启动类添加进去。

  1. public class ServletInitializer extends SpringBootServletInitializer {
  2. @Override
  3. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  4. return application.sources(Application.class);
  5. }
  6. }

最后执行

  1. mvn clean package -Dmaven.test.skip=true

会在 target 目录下生成:项目名+版本号.war文件,拷贝到 tomcat 服务器中启动即可。

发表评论

表情:
评论列表 (有 0 条评论,563人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Springboot打包部署(七)

    一、前言 >        作为后台开发,项目打包部署是经常性的操作。当我们完成某一阶段的开发之后就要进入测试阶段,这就需要我们打成jar或者war包部署在服务器,方便测