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

自定义依赖版本选择:如何列出1.0.0开头的版本并筛选?

如何列出并选择以特定前缀开头的依赖版本

当然有办法解决这个问题!我之前在维护多版本依赖的项目时也碰到过类似场景,给你分享几个实用的方案,分工具场景来说:

Gradle 环境下的方案

1. 用内置任务快速过滤

Gradle的dependencyInsight任务可以帮你查看某个依赖的所有可用版本,再结合命令行过滤就能拿到目标版本:

./gradlew dependencyInsight --dependency 你的依赖坐标(比如com.example:foo) --configuration compileClasspath | grep "^1\.0\.0"

替换成你实际的依赖坐标和配置(比如runtimeClasspath),就能输出所有以1.0.0开头的版本。

2. 自定义Gradle任务批量获取

如果需要更灵活的筛选,可以写个简单的自定义任务来遍历所有可用版本并过滤:

task listMatchingVersions {
    doLast {
        // 替换成你的依赖完整坐标
        def targetDependency = "com.example:your-artifact"
        def repoResolver = project.repositories.resolverFactory.createResolver()
        def dependency = project.dependencies.create(targetDependency)
        // 获取该依赖的所有可用版本
        def allVersions = repoResolver.resolveAll(dependency).collect { it.version }
        // 过滤出以1.0.0开头的版本
        def matchingVersions = allVersions.findAll { it.startsWith("1.0.0") }
        
        println "找到以下匹配1.0.0开头的版本:"
        matchingVersions.each { println "- $it" }
    }
}

执行./gradlew listMatchingVersions就能看到结果,之后你可以直接在resolutionStrategy里指定选中的版本:

configurations.all {
    resolutionStrategy {
        force "com.example:your-artifact:1.0.0-dev2"
    }
}

Maven 环境下的方案

如果你用Maven,可以借助versions插件来查看所有可用版本,再过滤目标前缀:

mvn versions:display-dependency-updates | grep "1\.0\.0"

或者直接查依赖的仓库元数据来获取所有版本:

curl https://你的仓库地址/com/example/your-artifact/maven-metadata.xml | grep "<version>" | grep "1\.0\.0"

通用小技巧

不管用什么工具,都可以先拿到所有版本列表,再用文本过滤工具(比如grep、awk)筛选出以1.0.0开头的条目,这样就能快速定位到你需要的版本了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:18:35