gradle 项目基础元数据通过 dsl 直接设置:group 和 version 定义 maven 坐标,project.name 控制模块标识与产物文件名,description 用于 pom 描述,extra 支持自定义字段;启用 java 插件后自动注入 manifest.mf 和 pom。

在 Gradle 的 build.gradle(或 build.gradle.kts)中,项目基础元数据(如组名、版本、名称)主要通过 Gradle 的 DSL 直接设置,而非插件专属配置块。这些属性影响构建产物坐标、发布行为和 IDE 识别,是项目最底层的标识信息。
group 和 version:定义 Maven 坐标核心部分
group 和 version 是 Gradle 项目最基础的元数据,直接决定生成的 jar/aar 的 groupId 和 version。它们属于 Project 对象的可写属性,可在脚本顶层直接赋值:
-
group = "com.example.myapp"—— 推荐使用反向域名格式,与 Java 包名惯例一致 -
version = "1.2.0"—— 支持字符串、数字或动态表达式(如"1.0.${System.getenv("BUILD_NUMBER") ?: "SNAPSHOT"}") - 若未显式设置,
group默认为当前目录名(不安全),version默认为"unspecified"(会导致发布失败)
project.name:控制项目唯一标识和产物文件名
project.name 决定该模块在多项目构建中的名称,也默认作为 jar 文件名前缀(如 mylib-1.2.0.jar)。它通常由目录名自动推断,但建议显式声明以避免歧义:
-
rootProject.name = "my-app"(写在settings.gradle中)用于根项目命名 - 子项目中可通过
name = "core"或project.name = "core"覆盖默认值 - 注意:
archivesBaseName可进一步定制归档文件名(如archivesBaseName = "my-service"),优先级高于project.name
description 和 extra 属性:补充说明与自定义字段
description 是标准 Project 属性,用于描述项目用途,会出现在生成的 POM 文件中;extra 则提供键值对存储空间,适合存放构建时需复用的元数据:
-
description = "Core business logic module"—— 简洁说明用途,便于团队理解 -
ext { springVersion = "6.1.0" }—— 在ext块中定义变量,后续可用project.ext.springVersion或简写springVersion引用 - 也可用
ext.set("buildTime", new Date().format("yyyy-MM-dd"))注入构建时间等动态值
配合 Java 插件时的隐含行为
启用 java 插件后,Gradle 会自动将 group、version 和 project.name 注入生成的 MANIFEST.MF 和 maven-publish 的 POM 文件中:
-
manifest.attributes["Implementation-Title"]默认取project.name -
manifest.attributes["Implementation-Version"]默认取project.version - 若使用
maven-publish插件,无需额外配置即可生成符合 Maven 规范的坐标信息
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











