在deepin上使用Fleet开发SpringBoot 3.0.0项目

Fleet 被称为是由 JetBrains 打造的下一代 IDE，目前出于公测状态，可以免费下载使用。

SpringBoot 3.0.0 最小支持是 JDK 17，这或许是对于 JDK8 的断舍离迈出的重大一步。

出于对新工具和新技术的好奇，我开始尝试在 deepin 上用 Fleet 开发一个 SpringBoot 3.0.0 项目，继续我的 SpringBoot 学习。

安装 Fleet

在Fleet 下载界面中点击 “下载 Toolbox App”，会下载一个 tar 包，解压后双击里面的可执行文件，即可自动安装 Toolbox。

在 Toolbox 中安装 Fleet，完成后打开可以发现它很简洁，很自由，少了很多环境配置的专有区域和优化，因此需要自己配置一些开发环境，诸如 JDK、Gradle 等。

安装 OpenJDK

在 Adoptium 上下载 OpenJDK 17 版本：

完成后在下载目录中执行下面的步骤：

Copy
tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.8.1_1.tar.gz
mv jdk-17.0.8.1+1/ /usr/local/jdk

（如果没有 /usr/local/jdk 目录的话，需要使用sudo mkdir /usr/local/jdk新建文件夹，并使用sudo chown -R 当前用户名:当前用户名 /usr/local/jdk将文件夹所有权变更为当前用户，这样操作的目的是在一台机器上保存多个 JDK 版本）

随后添加环境变量，执行vim /etc/profile.d/java.sh，在文件中添加或修改：

Copy
export JAVA_HOME=/usr/local/jdk/jdk-17.0.8.1+1
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

若为第一次配置，则需要对文件赋权：

Copy
sudo chmod 755 /etc/profile.d/java.sh
sudo chown 登录的用户名:登录的用户名 /etc/profile.d/java.sh

使用source /etc/profile.d/java.sh重新加载环境变量，随后输入sudo vim ~/.bashrc，在最下方添加source /etc/profile.d/java.sh，保存。

使用java -version和javac -version查看 JDK 是否配置成功。

安装 Gradle

在 /usr/local 下创建 gradle 文件夹：

Copy
cd /usr/local
sudo mkdir gradle
sudo chown 登录的用户名:登录的用户名 /usr/local/gradle

随后进入该文件夹，使用 wget 下载 Gradle 安装包并解压，随后删除安装包：

Copy
cd gradle
wget https://downloads.gradle.org/distributions/gradle-8.3-bin.zip
unzip gradle-8.3-bin.zip
rm -rf gradle-8.3-bin.zip

现在 gradle 目录下只有一个 gradle-8.3 的文件夹，这样做是为了存在多个版本的 Gradle 时方便切换。

与配置 JDK 的环境变量类似，使用sudo vim /etc/profile.d/gradle.sh创建 Gradle 的环境变量

Copy
export GRADLE_HOME=/usr/local/gradle/gradle-8.3
export GRADLE_USER_HOME=$GRADLE_HOME/repo
export PATH=${GRADLE_HOME}/bin:${PATH}

使用source /etc/profile.d/gradle.sh重新加载环境变量，随后输入sudo vim ~/.bashrc，在最下方添加source /etc/profile.d/gradle.sh，保存。

使用gradle --version查看 Gradle 是否安装成功。

创建项目

使用Spring Initializr创建 SpringBoot 项目，选择使用的构建工具、语言、版本，填写相关包名，如下图所示：

随后点击”GENERATE“，会下载一个 zip 压缩包。将该压缩包解压，随后用 fleet 打开解压后的文件，fleet 会自动根据 gradle 的配置文件进行初始化：

在/src/main/resources/application.properties中加入server.port=8000指定启动端口，随后在例如/src/main/java/Controller中添加相应的 Controller，如下图所示，完成一个访问指定路径返回 “Hello SpringBoot” 的功能：

Copy
package studio.tsukistar.demo.Controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class testController {

@GetMapping("/hello")
public String hello() {
String hellotext;
hellotext = "Hello SpringBoot";
return hellotext;
}
}

使用Ctrl+R或点击右上角的运行按钮，Fleet 会自动构建并运行，在浏览器中输入http://localhost:8000/hello即可看到结果。

总结

Fleet 作为一个 JetBrains 想推出的轻量化 IDE，在实际使用中个人感觉还有许多需要被完善的地方。

Fleet 有一定的优点，例如智能模式下可以根据项目文件夹中包含的文件自动进行构建、索引等，并且代码补全功能相对来说显示的信息比较完整。同时支持 Alt+Enter 修正错误，老 JetBrains 选手用得很舒服。

但相对于优点来说，缺点还是有很多的。以开发 SpringBoot 项目为例，由于没有插件支持，并且 Fleet 内没有专门的根据项目类型新建项目的选择，对于初学者来说几乎要依靠很多第三方工具（诸如 Spring Initializr）才能完成项目初始化构建。同时吐槽一点，Fleet 内部的 Git 管理因为 .gitignore 被修改不能选择那个文件，所以不能一键全选，不如在 Terminal 中用 git 命令。

因此综合使用体验来说，个人目前不建议用 Fleet，它不像专用 IDE 有一套引导流程，也不像 VSCode 那样有很多插件支持。希望之后的版本中很多功能可以被完善，使用体验会更棒。

参考文章

Deepin20.5 安装 JDK8

Centos 安装 jdk-17

Installing Gradle

在 Deepin 中安装 Gradle