您的位置:首页 > 编程语言 > Java开发

springboot 如何发布到外部的web服务器上

2016-09-26 17:54 459 查看
一般做springboot开发时都会直接使用内置的tomcat服务器,调试与发布都很方便。

但是不排除在某些情况下需要将spring boot工程打包成常规的war包,并发布到相应的web服务器。

要做到这点拢共分三步:

1、修改pom.xml中的配置,添加该项依赖,并将scope设置为provided。这样的作用是,覆盖关于tomcat的依赖,当进行打包操作时,不会把tomcat相关的包打进来。

<pre name="code" class="html">		<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<span style="color:#FF0000;"><scope>provided</scope></span>
</dependency>




2、添加一个新的启动类,由于不采用@SpringBootApplication方式,而是发布到外部的webserver上,所以需要修改启动方式。MagicCube.class是原来的SpringBootApplication注解的启动类,如果想要加载配置文件,则需要添加"classpath:applicationContext.xml"属性

public class ServletInitializer extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(MagicCube.class,"classpath:applicationContext.xml");
}
}

3、使用mvn clean package -Dmaven.test.skip=true进行打包即可生成war包,将该war包copy到tomcat的webapp目录下即可正常使用。

这里有一个小问题是,在使用springboot时,url路径中没有工程目录,而打包到tomcat中后url中会比之前多一个工程名。造成测试和发布的URL不一致,这个问题,不知怎么解决。

<packaging>war</packaging>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springboot 内置tomcat