Gradle获取当前依赖项版本

时间:2018-04-01 21:30:49

标签: gradle build.gradle

我正在尝试创建一个删除所有旧版本依赖项的任务,但我的工作正常,但问题是我的依赖版本有'。+'在内置版本号的版本中,所以当我得到它时,所有文件夹都被删除而不是只删除旧文件夹。我目前有这个:

task cleanTerraCore(type: Delete) {
doLast {
    def dirName = new File("${gradle.gradleUserHomeDir}/caches/minecraft/deobfedDeps/deobf/terrails/terracore/TerraCore")
    dirName.eachDir { dir ->
        project.configurations.deobfCompile.dependencies.each {
            System.out.println(it.version)
            if (dir.name.contains("SNAPSHOT") && it.name.contains("TerraCore")) {
                if (!dir.name.contains(it.version)) {
                    delete(dir)
                }
            }
        }
    }
}
}

dependencies {
   deobfCompile("terrails.terracore:TerraCore:" + getMajorMC() + "-" + "${terracore_version}-SNAPSHOT.+")
}

' it.version'总是打印出' SNAPSHOT。+'所以我不确定如何处理这个问题,能否以某种方式有效地检查最大版本号?

1 个答案:

答案 0 :(得分:0)

经过几个小时计算出来。它现在获得没有'+'符号的最新版本

task cleanTerra(type: Delete) {
doLast {
    def dirName = new File("${gradle.gradleUserHomeDir}/caches/minecraft/deobfedDeps/deobf/terrails/terracore/TerraCore")
    dirName.eachDir { dir ->
        configurations.deobfCompile.resolvedConfiguration.firstLevelModuleDependencies.each {
            System.out.println(it.moduleVersion + ", ${it.moduleName}")
            if (dir.name.contains("SNAPSHOT") && it.moduleName.contains("TerraCore")) {
                if (!dir.name.contains(it.moduleVersion)) {
                    delete(dir)
                }
            }
        }
    }
}
}

所以println现在打印出完整版本(目前为“1.12-2.1.10-SNAPSHOT.7”)和依赖名称“TerraCore”