news 2026/10/14 10:07:35

HoRain云--Maven与Gradle工程化实践:从依赖管理到CI/CD

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--Maven与Gradle工程化实践:从依赖管理到CI/CD

构建工具是Java项目的基石。Maven稳定成熟,Gradle灵活高效。本文对比两者,并讲解多模块、CI/CD集成。

一、Maven核心

1.1 生命周期
  • clean

  • validate → compile → test → package → verify → install → deploy

1.2 依赖范围
scope说明
compile默认,全阶段
provided编译和测试,运行时由容器提供
runtime运行和测试
test仅测试
system本地jar(不推荐)
1.3 依赖冲突

bash

复制

下载

mvn dependency:tree

Maven采用"最短路径优先"和"先声明优先"。

排除依赖:

xml

复制

下载

运行

<dependency> <groupId>com.example</groupId> <artifactId>lib-a</artifactId> <version>1.0</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>

二、多模块项目

父POM:

xml

复制

下载

运行

<project> <groupId>com.example</groupId> <artifactId>parent</artifactId> <version>1.0.0</version> <packaging>pom</packaging> <modules> <module>common</module> <module>service</module> <module>web</module> </modules> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>3.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>

子模块:

xml

复制

下载

运行

<parent> <groupId>com.example</groupId> <artifactId>parent</artifactId> <version>1.0.0</version> </parent> <artifactId>common</artifactId>

三、Maven Profile

xml

复制

下载

运行

<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <env>dev</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles>

bash

复制

下载

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 DSL:

kotlin

复制

下载

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 Actions

yaml

复制

下载

name: Build on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: java-version: '21' distribution: 'temurin' cache: 'maven' - run: mvn clean verify - run: mvn sonar:sonar
6.2 Jenkins Pipeline

groovy

复制

下载

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.PATCH

  • SNAPSHOT:开发版

  • Release:正式版

  • 统一版本:revision属性

xml

复制

下载

运行

<version>${revision}</version> <properties> <revision>1.0.0</revision> </properties>

八、总结

Maven适合传统企业项目,Gradle适合追求性能和灵活性的团队。掌握多模块、Profile、CI/CD,能提升团队交付效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 10:07:30

南邮数据结构实验一:线性表与多项式运算的完整实现与避坑指南

简介&#xff1a;本资源为南京邮电大学《数据结构》课程实验一的完整实验报告&#xff0c;面向计算机相关专业学生及正在学习线性表与多项式运算的编程初学者。报告围绕顺序表与带表头单链表两种存储结构展开&#xff0c;涵盖初始化、查找、插入、删除、输出、撤销等基本运算&a…

作者头像 李华
网站建设 2026/10/14 10:07:20

UVM编码规范实战:Easier UVM模板与代码生成器避坑指南

简介&#xff1a;这份资源是Doulos出品的《Easier UVM Coding Guidelines》编码指南&#xff0c;面向已掌握SystemVerilog与UVM基础、希望提升验证代码一致性与复用性的硬件验证工程师及项目管理者。它针对团队中编码风格各异、维护成本高、验证环境难以从块级复用到系统级等痛…

作者头像 李华
网站建设 2026/10/14 10:07:05

Hibernate批量操作原理与性能优化实战

1. Hibernate批量操作的本质解析在持久层开发中&#xff0c;我们经常遇到需要同时处理大量数据记录的场景。比如电商系统凌晨批量更新商品库存、金融系统日终生成上万条交易流水记录&#xff0c;或者内容平台每月归档历史数据。如果采用传统的逐条处理方式&#xff0c;会产生大…

作者头像 李华
网站建设 2026/10/14 10:05:21

心血管预测模型Python源码集锦:临床级建模与可解释性实现

简介&#xff1a;本资源是一套面向数学建模初学者与Python数据科学学习者的实战型心血管疾病预测项目&#xff0c;聚焦医疗健康领域风险评估这一典型应用场景&#xff0c;帮助用户掌握从数据清洗、特征工程到模型构建与评估的完整机器学习流程。压缩包共3个文件&#xff08;1个…

作者头像 李华
网站建设 2026/10/14 10:04:36

IMDB数据集:文本分类中的真实基准与工程标尺

1. 这不是“跑个demo”那么简单&#xff1a;IMDB影评数据集在文本分类中的真实价值与落地逻辑你可能在教程里见过这句话&#xff1a;“用IMDB数据集做情感二分类&#xff0c;5分钟上手TensorFlow”。但如果你真把它当成一个练手玩具&#xff0c;那大概率会在实际项目里栽跟头—…

作者头像 李华
网站建设 2026/10/14 10:04:24

Spring Boot防疫物资管理系统设计与实现

1. 项目概述与背景 防疫物资管理系统是疫情防控常态化背景下应运而生的信息化解决方案。在2020年疫情爆发初期&#xff0c;我曾参与过某慈善机构的物资调配工作&#xff0c;亲眼目睹了传统纸质登记方式导致的物资分配混乱——有捐赠者反映三天前捐赠的口罩仍未送达医院&#xf…

作者头像 李华