简介


一些项目中有的打jar包,有的打war包,这里简单描述下如果打war包,并部署到tomcat中。

步骤


1、修改打包形式

修改pom.xml文件,添加以下内容,如果已经存在的,将其修改为war包形式。

  1. <packaging>war</packaging>

2、移除嵌入式tomcat插件

在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <!-- 移除嵌入式tomcat插件 -->
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-tomcat</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>

3、添加servlet-api的依赖

以下有两个依赖可以选择,二选一:

a. javax.servlet-api

  1. <dependency>
  2. <groupId>javax.servlet</groupId>
  3. <artifactId>javax.servlet-api</artifactId>
  4. <version>4.0.1</version>
  5. <scope>provided</scope>
  6. </dependency>

b. tomcat-servlet-api

  1. <dependency>
  2. <groupId>org.apache.tomcat</groupId>
  3. <artifactId>tomcat-servlet-api</artifactId>
  4. <version>9.0.2</version>
  5. <scope>provided</scope>
  6. </dependency>

4、修改启动类,并重写初始化方法

我们平常写的项目都有一个启动类,如下:

  1. import org.mybatis.spring.annotation.MapperScan;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. @MapperScan({"com.ck.syscheck.dao"})
  6. public class SysCheckApplication {
  7. public static void main(String[] args) {
  8. SpringApplication.run(SysCheckApplication.class, args);
  9. }
  10. }

由于需要类似于web.xml的配置方式来启动spring上下文了,故需在启动类SysCheckApplication类的同级添加一个SpringBootStartApplication类,其代码如下:

  1. import org.springframework.boot.builder.SpringApplicationBuilder;
  2. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  3. /**
  4. * 启动类,该类继承SpringBootServletInitializer,并且重写configure方法
  5. *
  6. * @author ck
  7. * @date 2019/6/25
  8. */
  9. public class SpringBootStartApplication extends SpringBootServletInitializer {
  10. @Override
  11. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  12. // 这里sources的类就是启动类
  13. return builder.sources(SysCheckApplication.class);
  14. }
  15. }

5、打包部署

a. cmd命令打包

在命令窗口通过以下命令进行打包,在target目录下就可以找到相应的war包。
命令:mvn clean package
**

b. IDE打包

找到Maven Projects,通过package命令打包
image.png

控制台出现以下内容表示打包成功。
image.png
将target下的war包拷贝到tomcat的
webapps目录下。
image.png

6、测试

启动tomcat,在浏览器输入相应的URL,即可。

END


搞定~