java-maven-gradle
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseJava Maven Gradle Skill
Java Maven Gradle技能
Master Java build tools for efficient project management and CI/CD integration.
掌握Java构建工具,实现高效项目管理与CI/CD集成。
Overview
概述
This skill covers Maven and Gradle configuration including dependency management, plugin setup, multi-module projects, and CI/CD pipeline integration. Follows 2024-2025 best practices for both tools.
本技能涵盖Maven与Gradle的配置内容,包括依赖管理、插件设置、多模块项目以及CI/CD流水线集成。遵循2024-2025年两款工具的最佳实践。
When to Use This Skill
适用场景
Use when you need to:
- Set up Maven/Gradle projects
- Manage dependencies with BOMs
- Configure build plugins
- Optimize build performance
- Set up CI/CD pipelines
在以下场景中使用本技能:
- 搭建Maven/Gradle项目
- 使用BOM管理依赖
- 配置构建插件
- 优化构建性能
- 搭建CI/CD流水线
Topics Covered
涵盖主题
Maven
Maven
- POM structure and inheritance
- Dependency management with BOMs
- Plugin configuration
- Profiles and properties
- Multi-module projects
- POM结构与继承
- 使用BOM进行依赖管理
- 插件配置
- 配置文件与属性
- 多模块项目
Gradle
Gradle
- Kotlin DSL (build.gradle.kts)
- Dependency catalogs
- Task configuration
- Build cache optimization
- Composite builds
- Kotlin DSL (build.gradle.kts)
- 依赖目录
- 任务配置
- 构建缓存优化
- 复合构建
CI/CD Integration
CI/CD集成
- GitHub Actions workflows
- Dependency caching
- Matrix builds
- Artifact publishing
- GitHub Actions工作流
- 依赖缓存
- 矩阵构建
- 制品发布
Quick Reference
快速参考
Maven POM
Maven POM
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<spring-boot.version>3.2.1</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.4.1</version>
</plugin>
</plugins>
</build>
</project>xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<spring-boot.version>3.2.1</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.4.1</version>
</plugin>
</plugins>
</build>
</project>Gradle Kotlin DSL
Gradle Kotlin DSL
kotlin
// build.gradle.kts
plugins {
java
id("org.springframework.boot") version "3.2.1"
id("io.spring.dependency-management") version "1.1.4"
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.test {
useJUnitPlatform()
maxParallelForks = Runtime.getRuntime().availableProcessors() / 2
}kotlin
// build.gradle.kts
plugins {
java
id("org.springframework.boot") version "3.2.1"
id("io.spring.dependency-management") version "1.1.4"
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.test {
useJUnitPlatform()
maxParallelForks = Runtime.getRuntime().availableProcessors() / 2
}Version Catalog (libs.versions.toml)
Version Catalog (libs.versions.toml)
toml
[versions]
spring-boot = "3.2.1"
junit = "5.10.1"
[libraries]
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web", version.ref = "spring-boot" }
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }
[plugins]
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }toml
[versions]
spring-boot = "3.2.1"
junit = "5.10.1"
[libraries]
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web", version.ref = "spring-boot" }
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }
[plugins]
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }CI/CD Templates
CI/CD模板
yaml
undefinedyaml
undefined.github/workflows/ci.yml
.github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven' # or 'gradle'
- run: ./mvnw -B verify
undefinedname: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven' # or 'gradle'
- run: ./mvnw -B verify
undefinedUseful Commands
实用命令
bash
undefinedbash
undefinedMaven
Maven
mvn dependency:tree
mvn versions:display-dependency-updates
mvn help:effective-pom
mvn dependency:tree
mvn versions:display-dependency-updates
mvn help:effective-pom
Gradle
Gradle
gradle dependencies
gradle dependencyInsight --dependency log4j
gradle build --scan
undefinedgradle dependencies
gradle dependencyInsight --dependency log4j
gradle build --scan
undefinedTroubleshooting
故障排除
Common Issues
常见问题
| Problem | Cause | Solution |
|---|---|---|
| Dependency not found | Wrong version | Check Maven Central |
| Version conflict | Transitive deps | Use BOM or enforcer |
| Build OOM | Heap too small | Set MAVEN_OPTS |
| Slow builds | No caching | Enable build cache |
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 依赖未找到 | 版本错误 | 检查Maven Central |
| 版本冲突 | 传递依赖 | 使用BOM或enforcer插件 |
| 构建内存溢出 | 堆内存过小 | 设置MAVEN_OPTS |
| 构建缓慢 | 未启用缓存 | 启用构建缓存 |
Debug Checklist
调试检查清单
□ Check effective POM/build
□ Analyze dependency tree
□ Verify repository order
□ Check plugin versions
□ Review build cache□ 检查有效POM/构建配置
□ 分析依赖树
□ 验证仓库顺序
□ 检查插件版本
□ 查看构建缓存Usage
使用方法
Skill("java-maven-gradle")Skill("java-maven-gradle")Related Skills
相关技能
- - Maven specific
java-maven - - Gradle specific
java-gradle
- - 仅针对Maven
java-maven - - 仅针对Gradle
java-gradle