引言:什么是 Maven 和 Gradle,为什么需要它们?
在 Java 开发世界中,存在一个基本问题:如何管理依赖项(外部库)、自动化项目构建、运行测试以及创建最终工件(JAR、WAR)?手动下载 JAR 文件并配置 classpath 是一条死路,尤其是对于包含数十个依赖项的项目。
Maven 和 Gradle 是 Java 最流行的两种自动构建系统。它们解决以下任务:
- 依赖管理:从中央仓库(Maven Central、Google Maven)自动下载库及其传递性依赖。
- 生命周期标准化:编译、测试、打包、部署——所有这些都通过标准命令执行。
- 构建可重现性:任何开发人员只需一个命令即可构建项目,只需源代码和配置文件。
- 与 CI/CD 集成:Jenkins、GitLab CI、GitHub Actions 可以轻松运行 Maven/Gradle 构建。
Maven 使用 XML(pom.xml 文件)和严格的生命周期。Gradle 使用 Groovy 或 Kotlin DSL(build.gradle 或 build.gradle.kts 文件),它更灵活,并且由于增量构建而更快。在本文中,我们将介绍这两种工具,但将重点放在 Gradle 上,因为它是一个更现代的解决方案。
安装 Maven 和 Gradle
安装 Maven
Maven 不能通过 pip 或 npm 安装。您需要从官方网站下载它,或通过操作系统的包管理器安装。
# macOS (Homebrew)brew install maven
# Ubuntu/Debiansudo apt-get updatesudo apt-get install maven
# Windows (Chocolatey)choco install maven
# 验证安装mvn --version安装 Gradle
Gradle 也需要单独安装。建议使用 SDKMAN! 来管理版本。
# 安装 SDKMAN(如果尚未安装)curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"
# 安装最新版本的 Gradlesdk install gradle
# 验证gradle --version
# 或者:从 https://gradle.org/releases/ 下载并解压快速入门:创建项目
使用 Maven 创建项目
Maven 可以通过原型生成项目骨架。
# 创建一个简单的 Java 项目mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# 进入项目文件夹cd my-app
# 构建项目mvn clean package
# 运行(如果配置了 main class)java -cp target/my-app-1.0-SNAPSHOT.jar com.example.App使用 Gradle 创建项目
Gradle 使用 init 命令创建骨架。
# 创建文件夹并初始化项目mkdir my-gradle-appcd my-gradle-appgradle init
# 选择:2: application -> 3: Java -> 1: Groovy DSL -> 2: JUnit Jupiter -> Enter
# 构建并运行./gradlew build./gradlew run之后,您将拥有一个包含 build.gradle(或 Maven 的 pom.xml)文件以及 src/main/java 和 src/test/java 文件夹的项目结构。
主要方法/函数(Gradle DSL)
让我们看看 Gradle(Groovy DSL)的关键结构。对于 Maven,它们是类似的,但语法是 XML。
1. dependencies { ... }
作用: 定义项目的依赖项——将从仓库下载的外部库。
参数: 在块内部,指定配置(implementation、testImplementation、compileOnly 等)和坐标