简介
一些项目中有的打jar包,有的打war包,这里简单描述下如果打war包,并部署到tomcat中。
步骤
1、修改打包形式
修改pom.xml文件,添加以下内容,如果已经存在的,将其修改为war包形式。
<packaging>war</packaging>
2、移除嵌入式tomcat插件
在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3、添加servlet-api的依赖
a. javax.servlet-api
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
b. tomcat-servlet-api
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>9.0.2</version>
<scope>provided</scope>
</dependency>
4、修改启动类,并重写初始化方法
我们平常写的项目都有一个启动类,如下:
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan({"com.ck.syscheck.dao"})
public class SysCheckApplication {
public static void main(String[] args) {
SpringApplication.run(SysCheckApplication.class, args);
}
}
由于需要类似于web.xml的配置方式来启动spring上下文了,故需在启动类SysCheckApplication
类的同级添加一个SpringBootStartApplication
类,其代码如下:
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* 启动类,该类继承SpringBootServletInitializer,并且重写configure方法
*
* @author ck
* @date 2019/6/25
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 这里sources的类就是启动类
return builder.sources(SysCheckApplication.class);
}
}
5、打包部署
a. cmd命令打包
在命令窗口通过以下命令进行打包,在target目录下就可以找到相应的war包。
命令:mvn clean package
**
b. IDE打包
找到Maven Projects,通过package
命令打包
控制台出现以下内容表示打包成功。
将target下的war包拷贝到tomcat的webapps目录下。
6、测试
启动tomcat,在浏览器输入相应的URL,即可。
END
搞定~