首页需要需改pom.xml文件的packaging :
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
添加外部运行的tomcat依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
添加插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
编码问题:在package周期中其中在test环节种会遇到项目发送的sql是中文乱码,问题根源是添加不必要的测试依赖,这个时候应该最好把所有的测试依赖包都清楚,应该在项目运行时是不需要测试包的。而其中spring boot 会把所有的编码配置 成 UTF-8,无需再自己手动修改编码,给自己造成不要的BUG。
如果想去除版本信息,再build标签添加finalName添加自己想要的名字的即可
<build>
<finalName>输出项目名称</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
启动类:需继承SpringBootServletInitializer类,它实现了servlet3的加载机制,找到相对应的路线,从而能够顺利打包
@SpringBootApplication
public class AppSpringBoot extends SpringBootServletInitializer {
//打包
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(AppSpringBoot.class);
}
public static void main(String[] args) {
SpringApplication.run(AppSpringBoot.class,args);
}
}
看到如下信息,则打包成功:
[INFO] Building war: F:\ideaworkspace\test\target\test.war
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.4.RELEASE:repackage (default) @ test ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.772 s
[INFO] Finished at: 2018-09-17T10:28:20+08:00
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0