## 前言
如果你之前没有接触过 sdkman 的话,那么一定会好奇 sdkman 是啥,我为什么要用它来配置 Java 环境?
## sdkman 简介
官网:[https://sdkman.io/](https://sdkman.io/)
SDKMAN (Software Development Kit Manager) 是一个用于管理多个软件开发工具包版本的工具。它提供了一个方便的命令行界面,用于安装、切换、删除和管理多个版本的 SDK。
### 主要特性:
1. **多版本管理**:可以同时安装多个版本的 Java、Maven、Gradle 等工具,并在它们之间轻松切换
2. **简单的命令行接口**:所有操作都通过简单的 `sdk` 命令完成,不需要记忆复杂的语法
3. **跨平台支持**:支持 macOS、Linux 和 Windows (通过 WSL),提供一致的使用体验
4. **自动环境配置**:安装后自动配置相关环境变量,无需手动编辑配置文件
5. **广泛的工具支持**:除了 Java,还支持 Kotlin、Scala、Groovy、Gradle、Maven、Spring Boot 等几十种 JVM 生态工具
### 为什么选择 SDKMAN:
- **简化开发环境配置**:一条命令即可安装和切换开发工具版本
- **避免环境冲突**:不同项目可以使用不同版本的 JDK 和构建工具,互不干扰
- **流畅升级体验**:新版本发布后可以轻松升级,同时保留旧版本作为备份
- **标准化团队环境**:团队成员可以使用相同版本的工具,减少"在我机器上能运行"的问题
总结一句话就是方便,快捷,高效。
## 安装 sdkman
1. 安装 sdkman
```bash
curl -s "https://get.sdkman.io" | bash
```
2. 打开一个新的终端窗口,初始化 sdkman
```bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
```
3. 查看版本,出现以下内容说明安装成功了。
```bash
sdk version
```

## 安装 Java 环境
1. sdkman 查看可以安装的所有 java 版本
```bash
sdk list java
```

2. 这里以 java8 为例进行安装
```bash
sdk install java 8.0.402-amzn
```
3. 查看当前生效的 JDK
```bash
sdk current java
```

4. 查看 Java 版本
```bash
java -version
```

到这里 Java 环境就配置好了,不需要你配置环境变量。
## 安装 Maven 环境
1. 查看可以安装的 Maven 的版本
```bash
sdk list maven
```
2. 安装 3.9.6 版本
```bash
sdk install maven 3.9.6
```
3. 查看 maven 版本
```bash
mvn -v
```

到这里 maven 也装好了。
## 配置 Maven
主要配置一下 maven 的包下载源和依赖下载位置
maven 安装成功之后会告诉你 Maven Home,在 Maven home: /Users/tonngw/.sdkman/candidates/maven/current
进入这个位置 /Users/tonngw/.sdkman/candidates/maven/current/conf ,打开 settings.xml 文件进行配置即可。
找到 conf/settings.xml 文件,配置阿里云镜像源
```xml
alimaven
aliyun maven
central
https://maven.aliyun.com/repository/central
```

```java
/Users/tonngw/Develop/mvnRepository
```

完整配置文件
```xml
/Users/tonngw/Develop/mvnRepository
alimaven
aliyun maven
central
https://maven.aliyun.com/repository/central
```
## 安装 jetbrains-toolbox
jetbrains 家的 IDE 工具管理器,可以很方便的下载和管理 IDE。
```bash
brew install --cask jetbrains-toolbox
```
安装完成之后打开

直接通过 toolbox 安装 IDEA

## 配置 IDEA
### 基础配置
Java 路径


Maven 路径
Command + Shift + . 打开隐藏文件
进入 .sdkman/


将 candidates 目录拖到左侧边栏,方便进入。
配置好 maven 的安装路径和配置文件路径
### 新项目默认配置
Maven 配置

Java 配置


有了默认配置之后以后新建项目,环境配置就会默认配好了,不需要我们每次都去手动设置环境。
### 常用插件
+ Maven Helper:Maven 包冲突检测
+ GenerateAllSetter:快速生成 set 语句
+ Key Promoter X:提示快捷键的
+ MybastisX:mapper 助手
+ lombok
+ GitToolBox:Git 工具箱
可以通过 Jetbrains 账户直接同步过来
原来这里应该是同步配置

全部搞定!
### 小技巧
我们可以在控制台使用 `idea projectName` 来快速打开一个项目。

如果你有安装多个 IDEA 版本(比如社区版和旗舰版),那么就需要在终端配置文件中配置一下 IDEA 的路径,来指定具体使用哪个 IDEA 版本来打开项目。
```bash
export PATH="/Users/tonngw/Applications/IntelliJ IDEA.app/Contents/MacOS/idea:$PATH"
```
## 验证
随便找一个 Java 和 Maven 的项目,可以跑起来,说明我们的环境没有问题。
GitHub Repo 地址:[https://github.com/sauce-code/cuckoo](https://github.com/sauce-code/cuckoo)

## 最后
用 sdkman 配置 Java 环境简直不要太爽,真的分分钟搞定,可以把它做一个脚本,一键执行就能搞定!
## 参考资料
- [sdkman](https://sdkman.io/)
- [Jetbrains Toolbox](https://www.jetbrains.com/toolbox-app/)
- [IDEA](https://www.jetbrains.com/idea/)