Can you summarize the following document?
        
  過去 Java 開發者常用 Maven 和 Ant 等工具進行封裝佈署的自動化,或是兩者兼用,不過這兩個套件彼此有優缺點,如果頻繁改變相依套件版本,使用 Ant 相當麻煩,如果瑣碎工作很多,Maven 功能不足,而且兩者都使用 XML 描述,相當不利於設計 if、switch 等判斷式,即使寫了可讀性也不佳,而 Gradle 改良了過去 Maven、Ant 帶給開發者的問題,至今也成為 Android Studio 內建的封裝佈署工具。

  

  由於Gradle 的核心功能為真實世界提供了很少的自動化,其他實用性功能都是由外掛提供,所以往往在使用了Gradle時候,往往都會使用外掛以完整自動化操作。在特定的上下文語境下,Gradle 外掛提供給使用者對應合適的預設事項以及標準(慣例)。 換言之,外掛是對真實環境和上下文的一個補充和擴充套件。  使用外掛分兩步:解析外掛、應用外掛。Gradle外掛常見的兩種關鍵詞codice_1和codice_2,前者僅僅是應用外掛,後者是既分析又應用外掛。

  依賴約束(Dependency constraint),用於幫助模組去獲取一個可用的依賴。依賴約束,可以縮小模組的可支援版本的範圍。而且這也能適用於傳遞依賴(transitive dependencies)。 示例如下: dependencies {

  

  

  Java外掛為專案提供了Java編譯、測試以及其他一系列功能。同時Java外掛是其他JVM語言外掛的基礎。官方文件不建議使用者再直接使用Java外掛,而應該使用基於Java外掛的衍生外掛,如:java-library和application。 在java外掛中,codice_3 關鍵詞(編譯時依賴)已經廢棄,取而代之是 codice_4 關鍵詞,而在java-library中可使用codice_5和codice_4關鍵詞表示依賴。

  Application外掛,用於建立可執行的 JVM 應用。

  Java依賴包外掛用於提供Java依賴包的專門知識。 java-library外掛增加了API的概念。codice_4 和codice_5關鍵詞區別在於:codice_5所依賴的依賴包,會作為該專案的API被暴露於呼叫者;codice_4 所依賴的依賴包,不會作為該專案的API而暴露於呼叫者,呼叫者如果需要使用該依賴包需要另外宣告。

  Java平臺外掛為Java生態系統提供平臺的功能。平臺可用於各種目的,如:

  Gradle與Ant有很緊密整合,甚至在構建時可以把Ant構建指令碼直接匯入。下面的例子展示了一個簡單的Ant target被引入為一個Gradle task。  build.xml  <project> </project> build.gradle  ant.importBuild 'build.xml' 執行 gradle ant.target 將顯示如下結果 > gradle ant.target [ant:echo] Running ant.target!  BUILD SUCCESSFUL
Gradle是一個基於Apache Ant和Apache Maven概念的專案自動化建構工具。Gradle 構建指令碼使用的是 Groovy 或 Kotlin 的特定領域語言來編寫的,而不是傳統的XML。