You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需发布至远程仓库,Gradle多模块项目如何提取构件详情

在Gradle中提取构件信息(无需发布到远程仓库)

1. 提取groupId、带扩展名的构件名

Gradle的JavaPlugin会为每个Java模块提供jar任务(若为WAR等其他类型构件,对应任务为war),无需发布即可通过命令行或自定义任务查询相关属性。

方式一:命令行查询单个模块

在根目录执行以下命令,替换:module-name为目标子模块路径(如:core):

./gradlew :module-name:properties -Porg.gradle.output.style=plain | grep -E "(group|name|version|archiveFileName)"

输出说明:

  • group对应Maven中的groupId
  • archiveFileName是带扩展名的最终构件名(如core-1.0.0.jar)
  • name和version分别为构件基础名与版本号

方式二:自定义任务批量输出所有模块信息

在根项目的build.gradle中添加以下任务:

task printModuleInfo {
    doLast {
        subprojects.each { subproject ->
            if (subproject.plugins.hasPlugin('java')) {
                def buildTask = subproject.tasks.findByName('jar') // 非Java模块可替换为war/ear等
                println "===== 模块: ${subproject.path} ====="
                println "GroupId: ${subproject.group}"
                println "构件名(带扩展名): ${buildTask.archiveFileName.get()}"
                println "版本: ${subproject.version}"
                println ""
            }
        }
    }
}

执行命令触发任务:

./gradlew printModuleInfo

2. 提取仓库信息

仓库配置可通过命令行快速查看,或自定义任务输出结构化信息。

方式一:命令行查询

./gradlew properties -Porg.gradle.output.style=plain | grep -A 10 "repositories"

该命令会输出根项目及所有子模块的仓库配置,适合快速核验。

方式二:自定义任务输出结构化仓库信息

在根项目的build.gradle中添加任务:

task printRepositories {
    doLast {
        println "===== 根项目仓库 ====="
        project.repositories.each { repo ->
            println "仓库类型: ${repo.getClass().simpleName}"
            println "仓库URL: ${repo.url}"
            println ""
        }

        subprojects.each { subproject ->
            println "===== 模块 ${subproject.path} 仓库 ====="
            subproject.repositories.each { repo ->
                println "仓库类型: ${repo.getClass().simpleName}"
                println "仓库URL: ${repo.url}"
                println ""
            }
        }
    }
}

执行命令触发任务:

./gradlew printRepositories

任务会分别输出根项目与各子模块的仓库类型(如MavenCentral、MavenLocal)及对应URL。

补充说明

  • 若项目使用版本目录(version catalog)或继承式仓库配置,上述方法仍能自动识别所有有效仓库信息。
  • 所有操作仅依赖本地项目配置与Gradle任务属性,无需将构件发布到远程仓库。

内容的提问来源于stack exchange,提问作者user2242660

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:22:53