美文网首页
springboot项目通过maven命令打war包或者jar包

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

作者: zhaoqing3000 | 来源:发表于2019-11-21 16:23 被阅读0次

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);
    }
}
  • 新启动类 (打war包部署tomcat做适配)
@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文件)
  • 本地调试时打jar包的maven命令:
mvn clean package -Dmaven.test.skip=true
  • 线上部署时打war包的maven命令:
mvn clean package -Dmaven.test.skip=true -f pom_tomcat.xml

相关文章

网友评论

      本文标题:springboot项目通过maven命令打war包或者jar包

      本文链接:https://www.haomeiwen.com/subject/hyutwctx.html