因为 https://start.spring.io/ 在国内的访问不稳定,常常会导致连接超时。于是就有了自己搭建 Spring Initializr 服务器的想法。
下面是搭建时的一些爬坑记录:
// 服务器需要提前安装 JDK、git、maven,具体安装步骤略过yum install java-1.8.0-openjdk* yum install git// 下载 maven 包并上传,配置阿里镜像等步骤略过tar xvzf apache-maven-3.6.1-bin.tar.gz复制代码
配置完成环境变量等信息后,开始搭建 Spring Initializr 服务器
首先到克隆下源码
git clone https://github.com/spring-io/start.spring.io.git复制代码
进入到克隆代码目录,通过 maven 打包到本地
// 进入 start.spring.io 目录cd start.spring.io// 打包到本地目录mvn clean install复制代码
爬坑一:spring.initializr 依赖
报错信息:Failure to find io.spring.initializr:initializr-bom:pom:0.10.0-SNAPSHOT ...复制代码
根据报错信息很明显可以看出是一些依赖包没有正常下载导入,导致依赖无法找到对应 jar 包。经过搜索,发现这些包是从 https://github.com/spring-io/initializr 仓库中的包,我们只需要克隆项目下来然后执行 mvn clean install -DskipTests 命令安装到本地即可。
// 克隆代码git clone https://github.com/spring-io/initializr.git // 确认克隆的代码版本是我们缺失的 0.10.0-SNAPSHOT(参考 pom.xml 文件配置) // 进入到克隆代码的目录,执行 maven 安装命令cd initializr mvn clean install -DskipTests复制代码
显示如下信息即成功安装:
回到 start.spring.io 代码目录,继续执行 maven 安装命令
// 进入 start.spring.io 目录cd start.spring.io// 执行 maven 安装命令,此处可以不跳过测试mvn clean install复制代码
爬坑二:start-client 依赖
我们会发现仍然有报错,原因是 start-client 模块中需要依赖 Nodejs 执行构建,而我的服务器中没有安装,于是继续安装 Nodejs
// 首先要添加 Nodejs 14.x 存储库(root 用户执行)curl -sL https://rpm.nodesource.com/setup_14.x | bash -// 开始安装 Nodejsyum -y install nodejs// 安装 gcc-c++ 以便从 npm 构建原生插件yum install gcc-c++ make// 检查 node、npm 安装是否成功node --version // v14.15.4npm --version // 6.14.10复制代码
安装成功后,重新执行 mvn clean install 安装 start.spring.io 成功
进入 website 的编译输出目录 target 启动 start-site-exec.jar
cd ./start-site/target// 启动 start-site-exec.jarjava -jar start-site-exec.jar复制代码
启动成功后,访问 localhost:8080
正常显示 Spring Initializr 页面,搭建成功,最后把 start-site-exec.jar 挂在服务器后台正常运行即可
// 使用 nohup & 后台运行nohup java -jar start-site-exec.jar >output.log 2>&1 &复制代码
-- 完 --