Ant 需手寫冗長 XML、依賴管理弱;Maven 雖有中央倉庫與慣例優於配置,但 XML 依然繁瑣、學習曲線陡。Gradle 以 Groovy DSL 撰寫建置腳本,語法簡潔、支援增量建置、原生整合 Ant/Maven、IDE 支援完善,已成為 Java 專案主流建置工具。
| 指令 | 說明 |
gradle clean | 刪除 build/ 目錄 |
gradle assemble | 僅編譯打包,不執行測試 |
gradle check | 編譯並執行測試/靜態分析 |
gradle javadoc | 產生 Javadoc(零配置) |
gradle eclipse | 產生 Eclipse .classpath/.project,自動調整目錄結構 |
gradle war | 套用 war plugin 產出 WAR |
進階配置
1. 相依套件管理
repositories {
mavenCentral()
flatDir { dirs 'libs' } // 本地 JAR
}
dependencies {
implementation 'org.junit.jupiter:junit-jupiter:5.9.2'
compileOnly files('libs/legacy.jar')
}
2. 多模組專案
根目錄 settings.gradle:
include 'sub_project_one', 'sub_project_two'
根 build.gradle:
subprojects { apply plugin: 'java' } // 所有子專案套用 java plugin
apply plugin: 'java' // 根專案若也需建置
子專案可各自擁有 build.gradle 覆寫(如套用 war plugin)。
3. 整合既有 Ant 腳本
ant.importBuild 'build.xml' // 直接引入 Ant targets
gradle antTargetName // 呼叫 Ant 目標
4. 發布成品至 Maven 倉庫
apply plugin: 'maven-publish'
publishing {
repositories { maven { url "file:///tmp/myRepo" } }
publications { mavenJava(MavenPublication) { from components.java } }
}
遷移既有專案建議
- 若專案結構不符 Gradle 慣例,用
sourceSets.main.java.srcDirs = ['src'] 指定舊路徑。
- 漸進式遷移:先用
ant.importBuild 复用 Ant 任務,再逐步改寫為 Gradle 任務。
- 善用
gradle init 產生初始腳本,再微調。
結語
Gradle 以「程式碼即配置」哲學,將建置邏輯變為可維護、可測試的程式。本文涵蓋從零開始到多模組、發布、Ant 整合的完整路徑,建議實作一遍即可掌握核心技能。
- 上一篇文章: Struts 從零開始(一):基礎登入驗證完整實作
- 下一篇文章: JAX-RPC 實作 Web 服務(二):開發 Client 端呼叫 RPC 服務
Copyright ©
程式碼之家 All Rights Reserved