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

Gradle多模块项目:如何获取打包至WAR的依赖及版本信息

在Gradle多模块项目中打印WAR包依赖的详细信息

嗨,我刚好折腾过类似的需求,在多模块Gradle项目里要揪出所有会被打包进WAR包的依赖(包括groupId、artifactId和版本),这里有两种实用的方案,你可以根据需求选:

方案一:用Gradle自带任务+过滤快速查看

Gradle的dependencies任务本身就能列出指定配置的依赖,而WAR插件默认会用warRuntimeClasspath配置来管理要打包到WEB-INF/lib的依赖。

单模块快速查看

如果你只需要看某个特定WAR模块的依赖,直接运行:

./gradlew :your-war-module-name:dependencies --configuration warRuntimeClasspath

但默认输出会有很多层级和冗余信息,你可以用过滤命令只提取核心的依赖坐标:

# Linux/macOS 下用grep过滤
./gradlew :your-war-module-name:dependencies --configuration warRuntimeClasspath | grep -E "([a-zA-Z0-9\-\.]+):([a-zA-Z0-9\-\.]+):([0-9a-zA-Z\-\.\-]+)"

# Windows CMD 下用findstr过滤
./gradlew :your-war-module-name:dependencies --configuration warRuntimeClasspath | findstr /r "[a-zA-Z0-9\-\.]*:[a-zA-Z0-9\-\.]*:[0-9a-zA-Z\-\.]*"

如果只想看直接依赖(排除传递依赖),加上--exclude-transitive参数即可:

./gradlew :your-war-module-name:dependencies --configuration warRuntimeClasspath --exclude-transitive

方案二:自定义Gradle任务,批量处理多模块

如果你的项目有多个WAR模块,自定义任务会更高效,还能输出规整的格式。在根项目的build.gradle(Groovy版本,Kotlin版逻辑类似)中添加以下代码:

task listWarDependencies {
    doLast {
        // 自动找到所有应用了WAR插件的子模块
        def warProjects = subprojects.findAll { project ->
            project.plugins.hasPlugin('war')
        }

        warProjects.each { project ->
            println "=== 模块 ${project.name} 的WAR打包依赖 ==="
            // 解析并获取最终要打包的依赖(包括传递依赖)
            project.configurations.warRuntimeClasspath.resolvedConfiguration.resolvedArtifacts.each { artifact ->
                def moduleId = artifact.moduleVersion.id
                println "${moduleId.group}:${moduleId.name}:${moduleId.version}"
            }
            println "\n" // 模块间空行分隔,更易读
        }
    }
}

添加完成后,运行以下命令就能一次性输出所有WAR模块的依赖信息:

./gradlew listWarDependencies

额外说明

  • 如果你的项目有自定义的依赖配置(比如某些依赖只在生产环境打包),只需要把代码里的warRuntimeClasspath换成你对应的配置名称即可。
  • 如果你只想输出直接依赖,可以把resolvedArtifacts部分换成遍历project.dependencies.warRuntimeClasspath,但注意动态版本(比如1.+')需要通过resolvedConfiguration才能拿到最终解析后的版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:36:44