我生来第一次看到
的情况 gradle compileJava check
在本地运行正常,但当我尝试使用bitbucket管道运行相同的命令时,我得到NoSuchClassDefError
我在本地和管道上做gradle user-login-server:dependencies
我怀疑的工件的版本是相同的
所以我能想到的唯一解释是实际的工件是不同的。
因此:我如何强制gradle输出每个依赖项的哈希值,以便我可以追踪出错的地方?
答案 0 :(得分:2)
你可以在罐子上循环并打印出这样的哈希。
task printDependencyHashes() {
def hash = { File file ->
def md = java.security.MessageDigest.getInstance('MD5')
file.eachByte(1024 * 4) { buffer, len ->
md.update(buffer, 0, len)
}
return md.digest().encodeHex().toString()
}
doLast {
configurations.compileClasspath.each { println "${it.name}: ${hash(it)}" }
}
}