首页 > 技术文章 > SpringBoot打包部署简单说明

baijinqiang 2019-08-24 17:24 原文

SpringBoot项目打包部署

1. jar包部署

  • 添加一个插件

    <!-- 打包插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    
  • 这种使用SpringBoot内嵌的Tomcat进行部署。SpringBoot在不指定打包的时候默认jar包形式

    <packaging>jar</packaging>
    
  • 使用命令启动部署

    java -jar xxx.jar
    

注意存在第三方jar的情况

2. war包部署

  • 添加插件如上

  • 打包方式修改为war

    <packaging>war</packaging>
    
  • 添加tomcat插件,spring boot本身有一个内嵌的tomcat,如果不做其他配置直接打包,就会生成一个jar包。 所以我们引入外部tomcat

    <!-- 外部 tomcat -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    
  • 在启动类中做如下配置,继承SpringBootServletInitializer,重写configure方法

    @SpringBootApplication
    public class MyApplication extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(MyApplication.class);
        }
    }
    
  • 打包(war)

    • 切换到项目所在路径,使用命令 mvn clean package
    • 使用IDE工具,例如IDEA自带打包工具war-package
  • 部署,拷贝war包到tomcat的webapps路径下,启动tomcat

注意:这种war包方式端口号使用tomcat的,项目名使用war包的名字,对于application.yml配置文件里指定的端口号和项目名会覆盖掉。

注意第三方jar的情况

使用maven的打包插件,打包方式还是如上。

<build>
        <!--设置maven-war-plugins插件,否则外部依赖无法打进war包 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>src/main/resources/jar/</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                            <filtering>false</filtering>
                            <includes>
                                <include>**/*.jar</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
        </plugins>
    </build>

注意:打包插件不能再用springboot提供的

推荐阅读