SpringBoot项目打成War包(Eclipse中)

1、maven项目,修改pom文件

<packaging>jar</packaging>  

改为

<packaging>war</packaging>

2、打包时排除tomcat.

        <!-- 这里指定打war包的时不再需要tomcat相关的包,但是本地运行时必须注释掉,否则会报错 -->
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>

        </dependency>

在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。

3、注册启动类

创建Application.java,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;


/**
 * @author mazhen3
 *
 */
@SpringBootApplication
public class Application extends SpringBootServletInitializer {


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
	
	/**
	   * 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式
	   */
	  @Override
	  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
	    return builder.sources(Application.class);
	  }


}
4、打成War包
在Eclipse中右击项目名称,出现的界面框中点击“Run As”,然后选择“Maven install”等待编译成功,在项目空间的target目录下就可以看到打成的War包:项目名+版本号.war文件。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页