因为 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 &复制代码

-- 完  --