springboot项目通过maven命令打war包或者jar包

2019-11-21  本文已影响0人  zhaoqing3000

springboot默认打包形式是生成可执行jar包,如果想实现本地开发和测试打jar包,生产环境打war包,就需要更改几个地方

1. 复制并重命名启动类,修改内容
2. pom文件设置启动类、打包方式改成war、排除内置tomcat
3. 执行maven打包命令时加上 -f pom_xxx.xml命令(指定pom文件)

上代码!

1. 复制并重命名新启动类,修改内容


image.png
@SpringBootApplication
public class TrainTicketApplication {
    public static void main(String[] args) {
        SpringApplication.run(TrainTicketApplication.class, args);
    }
}
@SpringBootApplication
public class TrainTicketApplication_Tomcat extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(TrainTicketApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(TrainTicketApplication.class);
    }
}

2 . pom文件设置启动类、打包方式改成war、排除内置tomcat,同样也需要复制一份pom文件,并重命名,修改文件内容


image.png
<packaging>war</packaging>
<properties>
        <!-- 指定启动类 -->
        <start-class>com.zhaoqing.trainticket.TrainTicketApplication_Tomcat</start-class>
    </properties>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--排除内置tomcat-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
                相当于compile,但是打包阶段做了exclude操作-->
            <scope>provided</scope>
        </dependency>
<build>
        <!-- 指定War包名称-->
        <finalName>train-ticket</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  1. 执行maven打包命令时加上 -f pom_xxx.xml命令(指定pom文件)
mvn clean package -Dmaven.test.skip=true
mvn clean package -Dmaven.test.skip=true -f pom_tomcat.xml
上一篇 下一篇

猜你喜欢

热点阅读