如何让 gradle 输出每个依赖项的依赖项哈希

2024-03-22

我有生以来第一次看到这样的情况

gradle compileJava check在本地运行良好,但是当我尝试使用 bitbucket 管道运行相同的命令时,我得到NoSuchClassDefError

I do gradle user-login-server:dependencies本地和管道上以及我怀疑的工件的版本是相同的

所以我能想到的唯一解释是实际的文物是不同的。

因此:我如何强制 gradle 输出每个依赖项的哈希值,以便我可以追踪出了什么问题?


您可以循环遍历罐子并打印出像这样的哈希值。

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)}" }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 gradle 输出每个依赖项的依赖项哈希 的相关文章

随机推荐