Gradle入門教程(二):Gradle項目結構與屬性配置

2.1 聲明式(Conventions)

“Conventions”這個詞有人將它翻譯成“約定式”,有人將它翻譯成“聲明式”,我更傾向於後者,所以我在這個系列的博客中都會成其爲聲明式

在第一部分中我們提到過,Gradle吸收了Maven的聲明式的特點,所謂聲明式直接的體現就是我們將特定的文件(如代碼、資源文件)放在特定的目錄下,Gradle會自動地在相應的目錄下找到對應的文件,減少了需要自定義的構建腳本。

2.2 實例講解項目結構

在Idea中新建一個用Gradle構建的Java項目:

注:請確保你的Idea已經配置好Gradle,可以在settings->Build,Execution,Deployment->Gradle中查看

新建立java項目

項目創建完成之後,目錄結構如下圖:

目錄結構

  • .gradle文件夾:存放Gradle的緩存,緩存可用於加快構建速度
  • .idea文件夾:Idea生成的,與Gradle無關,略
  • gradle->wrapper:當前版本下gradle文件夾中只含有wrapper文件夾,用於存放GradleWraper的jar包以及配置文件
  • src文件夾:用於存放源代碼、資源文件等。這個文件夾不是由Gradle聲明,而是由java插件聲明
  • build.gradle:根目錄下的build.gradle文件,是項目的構建腳本,可以說是Gradle項目最重要的文件
  • gradlew、gradlew.bat:Gradle Wrapper的執行腳本,分別適用於類Unix系統和windows系統
  • settings.gradle:項目的設置文件,最重要的作用是用於設置Multi-Project構建時哪些project參與構建

(注:Gradle Wrapper、插件、Multi-Project等內容在之後的章節會講)

現在我們新建一個測試類,然後在命令行中執行gradlew build命令構建項目,項目的根目錄下會產生一個build文件夾(如果是用Idea圖形化構建的話生成的是out文件夾,這與Idea的設置有關):

build文件夾

  • build文件夾:Gradle構建後的所有產物都會放在此,包括class文件等

2.3 配置Gradle的屬性

Gradle提供了許多種配置屬性的方式:

  1. Gradle安裝目錄下的gradle.properties文件

  2. 項目根目錄下的gradle.properties文件

  3. 環境變量GRADLE_USER_HOME所指向目錄的gradle.properties文件

  4. 通過命令行設定的系統屬性

注意: 如果同一個屬性同時被以上兩種(含)以上的方式指定,則編號大的方式優先。

舉例一些可供設置的屬性

  • org.gradle.caching=(true,false) 當設置爲true時啓用緩存功能,緩存可以加快構建速度
  • org.gradle.console=(auto,plain,rich,verbose) 用於設置gradle控制檯的顯示字體、顏色等
  • org.gradle.daemon=(true,false) 設置爲true時啓用守護進程進行build

注: 更多屬性請查閱官方文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章