war包
1.将打包方式换成war,springboot默认是jar
<packaging>war</packaging>
2.指定入口类,注意mainclass为springboot的启动类
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<mainClass>com.duhaoyu.FilesApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
3.排除内嵌的Tomcat
<!-- 排除内嵌的Tomcat依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--如果是使用的jsp模板,需要加入以下依赖。使用thymeleaf不许要加入-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
4.配置入口类
package com.duhaoyu;
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;
@MapperScan("com.duhaoyu.dao")
@SpringBootApplication
public class FilesApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(FilesApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(FilesApplication.class);
}
}
做完上述操作以后,点击maven的clean,然后进行打包即可。
注:如果使用的war打包方式,那么在配置文件中配置的项目名以及端口号就不起作用了,因为这两个配置指定的是内嵌的Tomcat容器。
jar包
由于springboot默认就是jar包部署,因此在打jar包的时候不需要做额外的配置,直接进行打包即可。但是由于springboot内嵌了Tomcat,打jar包以后,如果有文件上传下载的相关业务,那么需要自己定义路径进行保存,不能使用内部的Tomcat路径。