我正在尝试创建一个删除所有旧版本依赖项的任务,但我的工作正常,但问题是我的依赖版本有'。+'在内置版本号的版本中,所以当我得到它时,所有文件夹都被删除而不是只删除旧文件夹。我目前有这个:
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。+'所以我不确定如何处理这个问题,能否以某种方式有效地检查最大版本号?
答案 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”