项目架构为前后端分离开发模式,客户现场没有Docker环境实施人员又不会安装就只能想办法将项目打包成独立可运行jar文件并提供Web静态资源访问。
目标
- 独立可运行jar;
- 分离静态html资源到jar包外;
- 分离application.yml文件到jar包外;
- 不依赖系统JDK资源,使用发布包内部jre文件运行;
- 项目依赖的lib打包到业务jar包外,减小业务jar体积;
创建SpringBoot项目
创建基础项目
打开网站https://start.spring.io 按照下图配置创建基础项目
项目编译采用Gradle方式编译
开发语言Java
SpringBoot版本使用2.4.3
打包方式Jar方式
JDK版本8.x
Dependencies 暂时之选择一个SpringWeb
配置完成后点击下图箭头指向按钮,会下载一个与项目名称相同的zip包到本地,这里我们项目名称没有更改所以下载的zip包为demo.zip
创建测试页面以及测试Api接口
1. 设置后段服务端口
将项目src/main/java/resources/application.properties
文件更名为application.yml
并将内容做如下更改:
server:
servlet:
context-path: /demo
port: 8099
文件内容注解:api主目录/demo
,api端口8099
2. 创建测试Apil类
在/src/main/java/com/example/demo
目录下创建包api
,并创建类TestController
并写入如下内容:
package com.example.demo.api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("test")
public class TestController {
@GetMapping("/hello")
public String hello() {
return "Hello this is demo !";
}
}
3. 创建WebConfig
在/src/main/java/com/example/demo
目录下创建包config
,并创建类WebConfig
并写入如下内容:
package com.example.demo.conifg;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 配置静态目录转发
registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/");
}
}
4.创建Hello.html
在src/main/java/resources/static
创建目录dist
并在dist
目录下创建hello.html
文件并写入如下内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
</head>
<body>
<div style="color:red">
Hello this is demo html;
</div>
</body>
</html>
所有文件创建完成后项目目录结构如下图:
5. 启动项目并测试相关代码正确性
打开DemoApplication
文件,启动项目
6.测试Api接口
打开浏览器并输入http://localhost:8099/demo/test/hello
,如下图所示则证明Api接口成功。
6. 静态资源转发正确性验证
打开浏览器并输入http://localhost:8099/demo/dist/hello.html
,如下图所示则证明Api接口成功。
到达这里已经完成基础的SpringBoot测试项目搭建,可以关闭IDEA环境中的测试服务。
7.将项目打包成jar
在项目根目录下执行命令gradle clean build -x test
完成项目打包编译,命令运行成功后会在项目build/libs
下生成发布jar如下图所示:
8.执行发布JAR
将jar包拷贝到任意目录,在jar包同级目录下打开命令行工具输入命令java -jar xx.jar
如下图所示:
命令执行成功会有如下显示:
执行第6步,第7步测试无误后证明发布Jar打包成功。
后续操作进入下一篇
SpringBoot Web项目打包独立Jar(2)