
Gradle 安裝教學
===
首先到官方網站看Install的Document, 可以看到Prerequisites(前置條件), 需要java JDK 8以上.
以及大部分Unix安裝的方法. 但樹懶使用的是Window, 所以直接跳過, 直接看到下面
[Gradle下載網站](https://gradle.org/install/)

看到Installing manually(人工安裝)這裡, 他給了我們zip的兩種下載方式,
分別是Binary-only 跟Complete
(註1 一個有附帶document而已, 下載哪個都可以, 別介意)
(註2 有包含Source(src), 代表的是Java源文件, 如果想要自己編譯, 下載這個,
而Binary-only 則是編譯後的二進制class文件.)

看的出來, 這兩個差別只有多一個docs文件夾而已.

接者一切按照上面的教學走, 在C:// 直接新增一個Gradle資料夾, 並且把壓縮檔解壓縮後的資料夾丟到Gradle裡面.


(註 馬的 XBox Game 資料夾是什麼拉基= =
路徑在C:\Program Files\WindowsApps\Microsoft.GamingServices_13.78.12002.0_x64__8wekyb3d8bbwe)
接者我們對者我的電腦右鍵 -> 屬性 -> 系統詳細設定 -> 環境變量

然後在系統變量裡面把剛剛Gradle資料夾中的bin資料夾的路徑新增進Path裡面

接者右下角的window icon點一下, 輸入wt 確認之後, 在terminal輸入以下命令
```
gralde -version
```

可以看到成功的讀取到了gradle 版本.
參考文獻
1. [What is Gradle?](https://www.devopsschool.com/blog/what-is-gradle-and-how-it-works-an-overview-and-its-use-cases/)
2. [Gradle](https://gradle.org/install/)
IDEA中配置Gradle
===
:::success
Gradle 文件我放在另一篇進行額外講解, 如果需要參考我在放連結
[Gradle詳解](https://hackmd.io/cE9QiWopRuigep2jC-JF1Q)
:::
好的, 我接下來想說, 剛剛配置的Gradle跟IDEA沒任何屁關係, 我也是打到這裡才知道IDEA就有內建的Gradle <3, 上續配置主要是為了VSCode而準備的, 如果之後有人需要我出教學, 我在學一學統整跟你們說, 主要是我VSCode是我工作的環境, 我不太想去動到它.
首先創建一個空Project, 並且把Git repository(Git 倉庫)勾起來.

接者對者專案右鍵 -> New -> Module

這邊照者我這樣設定, 要記住JDK版本一定要選擇之前配置過的microsoft jdk版本
這次教學是使用Gradle, 理所當然的也要選Gradle.
下面Advanced Settings(高級設定)中的GroupId隨便取個順眼的就好, 但我還是遵照Java規範命名.

這時候會出現錯誤, Unsupported class file major version 64, 原因是沒有讀取到JDK, 我們在右上角Module JDK那邊設定一下.

然後在build.gradle的文件中把dependencies中的兩行代碼刪除
```
dependencies {
這兩行刪除
//testImplementation platform('org.junit:junit-bom:5.9.1')
//testImplementation 'org.junit.jupiter:junit-jupiter'
}
```
然後接者在左上角 File -> Settings -> Build, Execution, Deployment中的Gradle把Gradle JVM設定成17.0.7(自己之前安裝JDK的位置)

接者在File -> Project Settings -> Modules中的Dependencies(附屬)確認jdk是否有讀取到, 沒讀取到的在Module SDK這邊可以直接編輯

(註 Project Settings 為此專案的設定, Settings 為IDEA的全部設定, 可以把它想像成一個是用戶變量, 一個是系統變量.
最後在build.gradle這邊按下load gradle按鈕

接者我們到src/main/java/first/Main 文件裡面, 運行main 測試一下

OK, 到這邊環境就建立完畢了.
問題
Q1. Unsupported class file major version 64
A1. 這個問題應該是Gradle不支持openjdk20, 我把版本降到17.0.7就可以使用了.
參考
1. [配置IDEA中的Gradle](https://blog.csdn.net/xlecho/article/details/81056181)
2. [Java的命名規則](https://blog.csdn.net/Janewong_/article/details/108055461)
3. [Maven神器](https://tobebetterjavaer.com/maven/maven.html)
額外參考(關於VSCode部分)
1. [vscode 配置gradle google搜尋](https://www.google.com/search?q=vscode+%E9%85%8D%E7%BD%AEgradle&rlz=1C1JCYX_jaJP1051JP1051&oq=vscode+%E9%85%8D%E7%BD%AEgradle&gs_lcrp=EgZjaHJvbWUyBggAEEUYOdIBCDUxOTdqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8)
2. [VSCode+Gradle搭建Java开发环境](https://blog.csdn.net/JerkSpan/article/details/86007900)
各文件講解
===
接者我想針對IDEA以及Gradle中的文件,進行分析, 首先我比較在意的是那些紅紅綠綠的文件.
因為我們最一開始創建的時候, 有把Git repository(Git 倉庫)勾起來. 所以強大的IDEA自動的已經把一開始的文件 git add起來了. 所以那些綠色的文件就是一開始已經被add進去的, 而紅色的則有兩種, 一種是有modified(修改)過的, 一種是新增的檔案還沒有被add進去.

這時候我們之前辛苦創建的環境就派上用場了, 打開我們的Terminal, 可以看到我們的欄位上有出現幾串符號.
分別代表為, 現在我們在master 主幹上, 總共有4個檔案被add進去了, 有~2個檔案被修改, 有+11個檔案沒有被add

這時候我們利用命令來確認一下
```
git status
```

可以發現跟我們的動態欄一模一樣, :))
<br/>
接者我們看到, IDEA中的文件夾分為幾個部分,

```
Project -- .idea
|- Module(我們創建的Module FirstPlugin)
|- .iml檔案
```
Module中的文件
---

我當時看到src/main/java/first/Main的時候,
在想為什麼要這麼長的路徑, 在網路上搜尋了一下之後, Java有個大家都默認的習慣, (這就跟去男廁尿尿, 2個人你和陌生人, 10個小便池, 你卻站在陌生人旁邊尿尿, 雖然合法但有點變態), 我統整了一下大部分的規則, 首先前面的org, net, com之類的, 為域名, 後面則為你的專案名字.
而org, com, net的差別如下
| 域名 | org | com | net |
| -------- | ---------------- | ---------- | ---------------- |
| 組織 | 非營利組織, 開源 | 商業, 營利 | 網路公司, 數據庫 |
| 費用 | 基本免費 | 付費 | 廉價付費 |
| 名字由來 | organisation | commercial | network |
參考文獻
1. [域名的区别](https://www.yiibai.com/geek/271785)
2. [Java 命名約定](https://github.com/apachecn/howtodoinjava-zh/blob/master/docs/java/5.md)
3.