HoRain云--Maven与Gradle工程化实践:从依赖管理到CI/CD 构建工具是Java项目的基石。Maven稳定成熟Gradle灵活高效。本文对比两者并讲解多模块、CI/CD集成。一、Maven核心1.1 生命周期cleanvalidate → compile → test → package → verify → install → deploy1.2 依赖范围scope说明compile默认全阶段provided编译和测试运行时由容器提供runtime运行和测试test仅测试system本地jar不推荐1.3 依赖冲突bash复制下载mvn dependency:treeMaven采用最短路径优先和先声明优先。排除依赖xml复制下载运行dependency groupIdcom.example/groupId artifactIdlib-a/artifactId version1.0/version exclusions exclusion groupIdcommons-logging/groupId artifactIdcommons-logging/artifactId /exclusion /exclusions /dependency二、多模块项目父POMxml复制下载运行project groupIdcom.example/groupId artifactIdparent/artifactId version1.0.0/version packagingpom/packaging modules modulecommon/module moduleservice/module moduleweb/module /modules dependencyManagement dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version3.2.0/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement /project子模块xml复制下载运行parent groupIdcom.example/groupId artifactIdparent/artifactId version1.0.0/version /parent artifactIdcommon/artifactId三、Maven Profilexml复制下载运行profiles profile iddev/id activation activeByDefaulttrue/activeByDefault /activation properties envdev/env /properties /profile profile idprod/id properties envprod/env /properties /profile /profilesbash复制下载mvn clean package -Pprod四、Gradle核心groovy复制下载plugins { id java id org.springframework.boot version 3.2.0 } group com.example version 1.0.0 java { toolchain { languageVersion JavaLanguageVersion.of(21) } } repositories { mavenCentral() } dependencies { implementation org.springframework.boot:spring-boot-starter-web testImplementation org.springframework.boot:spring-boot-starter-test } tasks.named(test) { useJUnitPlatform() }Kotlin DSLkotlin复制下载dependencies { implementation(org.springframework.boot:spring-boot-starter-web) testImplementation(org.springframework.boot:spring-boot-starter-test) }五、Maven vs Gradle特性MavenGradle配置XMLGroovy/Kotlin性能较慢增量构建快灵活性低高学习曲线平缓陡峭生态成熟活跃六、CI/CD集成6.1 GitHub Actionsyaml复制下载name: Build on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - uses: actions/setup-javav3 with: java-version: 21 distribution: temurin cache: maven - run: mvn clean verify - run: mvn sonar:sonar6.2 Jenkins Pipelinegroovy复制下载pipeline { agent any stages { stage(Build) { steps { sh mvn clean package -DskipTests } } stage(Test) { steps { sh mvn test } } stage(Deploy) { steps { sh ./deploy.sh } } } post { always { junit target/surefire-reports/*.xml } } }七、版本管理语义化版本MAJOR.MINOR.PATCHSNAPSHOT开发版Release正式版统一版本revision属性xml复制下载运行version${revision}/version properties revision1.0.0/revision /properties八、总结Maven适合传统企业项目Gradle适合追求性能和灵活性的团队。掌握多模块、Profile、CI/CD能提升团队交付效率。