SpringBoot项目如何打包成war包
最近朋友做了一个springboot的小项目,需要发布到tomcat上去运行起来,但是打包的时候却发现,只能打包成jar包的形式,无法打包成war包,今天把自己的解决方案写下来,以供参考(eclipse版本):
一共有两种解决方案:
方案一:
如果是新建的项目,那么可以在一开始就选择打包方式为WAR,这样打包成的项目就是war包的形式。
查看我们的pom.xml文件:
此处的 provided代表了springboot自带的tomcat在编译的时候需要,而发布的时候忽略。 |
这是第一种方案中打包war包的形式,以上这些步骤缺一不可,所以如果大家打包失败,可以看看pom.xml文件和启动类的目录是否与小编一致。
方案二:
如果现在的项目已经是一jar包的方式建好了的项目,可以对项目做出以下调整修改:
- 修改pom.xml文件
1.修改打包方式:
<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 的依赖:
dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
4.定义打包的项目名称(可不设置):
<build>
<finalName>SpringBoot_MyBatis</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
- 修改启动类:
package com.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
@MapperScan("com.demo.dao")
//继承SpringBootServletInitializer类
public class SpringBootMybatisApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(SpringBootMybatisApplication.class, args);
System.out.println("启动成功");
}
/**
*新增此方法
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(SpringBootMybatisApplication .class);
}
}
打包:
选中项目,右键–>Run AS --> Maven Install即可,找到打包好的war包,放入tomcat的webapps目录下面,启动即可。
注意:
我们的SpringBoot的项目访问路径为:http:ip/port/…后面的是requestMapping的值,而部署到了tomcat中访问的地址应该为:http:ip/port/项目名称/…