SpringBoot项目打包:jar和war方式--基于idea
打包为jar包
准备环境
1.搭建一个spring Boot项目
2.pom.xml引入web和jsp依赖以及指定打包方式
<!-- jar方式打包 -->
<packaging>jar</packaging>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--添加jsp依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
3.创建一个controller
package com.example.studuy.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "Hello ,King";
}
}
4.创建一个web页面
5.在application.properties配置springMvc的页面前缀以及文件后缀
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
6.配置首页跳转的控制器,注意这里用的是@Controller注释,不能用@RestController, 后者是rest接口风格的注释,默认会把返回内容解释为json对象返回,而不是跳转页面
7.打包
此时target文件夹下会项目的jar包生成,只不过这个名称有点长,这个是有pom.xml的项目信息artifactId以及版本号默认生成,如果想自定义生成的项目文件名称,可以看本文的彩蛋部分,里面有相关介绍,这里就不多啰嗦了
环境运行
经过上面的准备工作,可以直接运行jar包了
命令: java -jar xxxxx.jar
jar包运行效果以及碰到的问题
尝试访问web首页,然而结果是这样子。。。(what)嗯,遇事不要慌
如果你看了一下jar内容就会发现里面并没有jsp等文件,所以jar包不能访问jsp
打包为war包
准备工作
步骤和上面打包为jar一样,只是打包方式改一下:
<packaging>war</packaging>
环境部署以及运行
使用springboot内嵌的tomcat启动
启动方式和启动jar包一样,直接用命令:java -jar XXXX.war 即可
使用外部资源tomcat启动
1.springboot默认启动是使用内嵌的tomcat启动,如果需要外部tomcat启动,则需要改造一下启动类:
2.把打包好的war包放入外部tomcat的webapps目录下,启动即可
(另外,tomcat的启动方式在本文下的彩蛋中也有介绍)
Get !!!
彩蛋
彩蛋一:tomcat启动时日志乱码解决方式
将tomcat中的conf–logging.properties的UTF-8全部改为GBK编码即可
彩蛋二:tomcat常见的两种其中方式
1.把项目放在webapps,直接启动
这种方式会把项目中的所有项目全部启动,即可同时启动多个项目。但是访问时必须加上项目名称作为访问上下文,及前缀
2.修改conf–server.xml文件,启动对应路径的项目,这个方式的好处是可以自定义项目上下文
<Context path="/ekp" reloadable="true" docBase="D:\git_workspace\springbootStudy\test01\target\test7">
</Context>
彩蛋三:命令启动war包时,指定端口启动
使用命令: java -jar xxxx.war --server.port=9986
即可指定9986作为启动端口
彩蛋四:自定义打包的项目文件名称
彩蛋五:新建静态文件时,可以直接选择jsp文件
默认是没有jsp文件选择的:
此时可以看到webapp的文件夹的图标变了,这时候可以直接选择jsp文件新建了