如何将Spring Boot项目打包部署到外部Tomcat

1.项目打包

    项目开发结束后,需要打包部署到外部服务器的Tomcat上,主要有几种方式。

(1)生成jar包

cd 项目跟目录(和pom.xml同级)
mvn clean package
## 或者执行下面的命令
## 排除测试代码后进行打包
mvn clean package -Dmaven.test.skip=true
打包完成后jar包会生成到target目录下,命名一般是 项目名+版本号.jar

启动jar包命令

java -jar target/spring-boot-scheduler-1.0.0.jar
这种方式,只要控制台关闭,服务就不能访问了。下面我们使用在后台运行的方式来启动:

nohup java -jar target/spring-boot-scheduler-1.0.0.jar &
也可以在启动的时候选择读取不同的配置文件

java -jar app.jar --spring.profiles.active=product

也可以通过IDEA的Maven工具生成,点击Lifecycle-install,生成jar

(2)生成war包

  (1)修改打包类型为war:<packaging>war</packaging>

    <packaging>war</packaging>

      (2)添加spring-boot-starter-tomcat依赖,scope设置为provided

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
</dependency>

  (3)注册启动类

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

public class ServletInitializer  extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(BootdemoApplication.class);
    }
}

  同样也是两种方式执行:

  (1)mvn clean package -Dmaven.test.skip=true

  (2)通过IDEA的Maven工具生成,点击Lifecycle-package,生成war

2.项目部署

  无论是用哪种方式生成,最终都是为了进行部署,war可以直接拷到tomcat的webapps目录下,启动Tomcat即可。

本人现就职于某互联网公司,技术栈全面,前后端、架构设计都要涉足,所有博文同步更新至我的个人博客http://geekvic.top,欢迎来撩!
posted @ 2017-07-26 00:45  TechSnail  阅读(14919)  评论(1编辑  收藏  举报