Spring boot 项目发布war 本地调试jar 方法

来源:互联网 发布:centos安装tomcat 编辑:程序博客网 时间:2024/06/04 18:57

大部分的SSH2或SSM的java开发人员习惯在之前的开发框架中直接将应用打包为war形式,而在使用Spring boot框架开发的过程中,默认是将应用发布为jar,但大部分开发者即 希望项目在本地使用Jar调试又可轻松地将应用打为war包在服务容器中发布与测试,特将经验进行一些总结,望能起到作用。


1. IDE:IntelliJ IDEA 2016

2. 新建Spring boot对应的工程,此过程略过,请自行操作

3. 等待下载对应jar包,Make project

4. 修改项目的pom.xml文件,如下所示:

1) 如果在建立工程时使用的是

<packaging>jar</packaging>
请修改为如下方式:jar->war

<packaging>war</packaging>


2) 增加以下的依赖项覆盖默认的内嵌tomcat配置(其他容器配置方式相同,仅jar依赖项不同,请自行尝试)

<dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-tomcat</artifactId>      <!--本地调试jar时请勿开启,需要打war也无需开启-->      <!--<scope>provided</scope>--></dependency><dependency>      <groupId>javax.servlet</groupId>      <artifactId>javax.servlet-api</artifactId></dependency>

3) 添加ServletInitializer类,可与Spring boot启动的main方法所在包同级

代码如下:

package com.test;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.support.SpringBootServletInitializer;import org.springframework.context.annotation.ComponentScan;import com.test.App;@SpringBootApplication@ComponentScanpublic class ServletInitializer extends SpringBootServletInitializer{    @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)    {        return builder.sources(App.class);    }}

4) 使用mvn package命令将工程打为war包,如下图所示:



至此,使用IntelliJ IDEA 2016开发Spring boot项目时,即可在本地进行jar调试,亦可打包war在容器上发布的配置就已经完成。如有更好方式或者方法敬请交流。



0 0