SpringBoot打包部署簡單說明

SpringBoot項目打包部署

1. jar包部署

  • 添加一個插件java

    <!-- 打包插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  • 這種使用SpringBoot內嵌的Tomcat進行部署。SpringBoot在不指定打包的時候默認jar包形式web

    <packaging>jar</packaging>
  • 使用命令啓動部署spring

    java -jar xxx.jar

注意存在第三方jar的狀況

2. war包部署

  • 添加插件如上apache

  • 打包方式修改成wartomcat

    <packaging>war</packaging>
  • 添加tomcat插件,spring boot自己有一個內嵌的tomcat,若是不作其餘配置直接打包,就會生成一個jar包。 因此咱們引入外部tomcatspringboot

    <!-- 外部 tomcat -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
  • 在啓動類中作以下配置,繼承SpringBootServletInitializer,重寫configure方法app

    @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)webapp

    • 切換到項目所在路徑,使用命令 mvn clean package
    • 使用IDE工具,例如IDEA自帶打包工具war-package
  • 部署,拷貝war包到tomcat的webapps路徑下,啓動tomcatmaven

注意:這種war包方式端口號使用tomcat的,項目名使用war包的名字,對於application.yml配置文件裏指定的端口號和項目名會覆蓋掉。ide

注意第三方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提供的

相關文章
相關標籤/搜索