使用initializr功能构建项目环境是非常便捷的
原理
原理是通过Idea面板勾选所需要的依赖发送请求给应用服务器 , 服务器返回一个根据所需生成的pom文件的压缩包 , Idea通过压缩包里的pom文件构建项目 , https://start.spring.io/ 本身就是一个应用.
问题
但是使用https://start.spring.io/ 部署在海外 , 经常很诡异出现访问慢访问不到或者能进入依赖选择界面但是接收不到压缩包报各种异常. 如果还想使用原生的initializr可以利用spring提供的源码自己进行搭建 , 部署在本地或者云服务器
所需环境
- git
- maven3.5+ (远程仓库配置阿里云)
- jdk17.0 (官方推荐)
# 拉取项目源码 , github连接问题, 有可能要多试上几次
$ git clone https://github.com/spring-io/start.spring.io.git
# 进入项目目录
$ cd start.spring.io/
# 打包项目 (如出现失败,参见下面我踩过的坑)
$ mvn clean install -DskipTests
# 进入 start-site目录
$ cd start-site
# 在本地启动该项目(不推荐)
$ mvn spring-boot:run
# 进入\start.spring.io\start-site
$ cd 项目路径\start.spring.io\start-site\target
# 找到 start-site-exec.jar , 把它在云服务器或者本地启动就OK了
nohup java -jar start-site-exec.jar &
# 访问项目
本地 : localhost:8080
云服务器: ip:8080
遇到的问题
打包过程中弹出 此应用在你的电脑无法运行 , 并打包失败
解决方案 : 经过n次尝试 , 发现问题是项目自带的node.exe安装包不匹配当前环境
-
下载64位v12.13.0的node.exe 下载:(https://nodejs.org/dist/v12.13.0/win-x64/node.exe)
-
进入node.exe所在目录(项目\start.spring.io\start-client\node) 用下载的node.exe替换原有的node.exe
-
重新 mvn clean install -DskipTests 刚才弹出对话框情况不存在, 打包成功, 就可以拿到jar包了.