文章目录
- war包部署
- 设置打包方式为war
- 排除内嵌的tomcat
- 在插件中指定入口类
- 打包测试
- jar包部署
- 设置打包方式
- 执行打包
- 测试访问
- 修改插件版本
- 指定jsp打包配置
- 重新打包测试
war包部署
设置打包方式为war
执行项目打包的方式为 "war" 默认创建springboot项目打包都是jar修改项目pom.xml:<packaging>war<packaging>
排除内嵌的tomcat
在依赖中加入provided,打包不参与
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope> <!--去掉内嵌tomcat-->
</dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope> <!--去掉使用内嵌tomcat解析jsp-->
</dependency>
在插件中指定入口类
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--配置springboot入口类--><configuration><fork>true</fork><!--增加jvm参数--><jvmArguments>-Dfile.encoding=UTF-8</jvmArguments><!--指定入口类--><mainClass>com.demo.SpringbootTest5Application</mainClass></configuration></plugin></plugins></build>
还要修改入口类
//SpringBootServletInitializer 不再使用内嵌的容器启动,使用外部的tomcat容器启动
@SpringBootApplication
public class SpringbootTest5Application extends SpringBootServletInitializer {public static void main(String[] args) {SpringApplication.run(SpringbootTest5Application.class, args);}//配置入口类是谁@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(SpringbootTest5Application.class);}
}
打包测试
部署到本地的tomcat。进行测试
测试结果
jar包部署
设置打包方式
**<packaging>jar</packaging>**
执行打包
测试访问
java -jar 对应jar文件名字 nohup &
然后测试访问
发现出现了404,其实是springboot对jsp模版支持不友好,使用jsp模版部署,jar部署无法找到jsp页面。如何解决呢?请看以下解决方案:
修改插件版本
<plugins><!--版本必须为1.4.2版本--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version></plugin>
</plugins>
指定jsp打包配置
<resources><!-- 打包时将jsp文件拷贝到META-INF目录下--><resource><!-- 指定resources插件处理哪个目录下的资源文件 --><directory>src/main/webapp</directory><!--指定必须要放在此目录下才能被访问到--><targetPath>META-INF/resources</targetPath><includes><include>**/**</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/**</include></includes><filtering>false</filtering></resource>
</resources>
重新打包测试