【问题标题】:How to get gradle to output dependency hash for each dependency如何让 gradle 为每个依赖项输出依赖项哈希
【发布时间】:2017-12-28 03:06:41
【问题描述】:

我有生以来第一次看到

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

我在本地和管道上使用gradle user-login-server:dependencies,我怀疑工件的版本是相同的

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

因此:如何强制 gradle 输出每个依赖项的哈希值,以便追踪问题所在?

【问题讨论】:

  • 不仅仅是哈希值可能是可疑的。您确定在本地和远程运行完全相同的 JDK 吗?
  • @MateuszChrzaszcz Wielkie Dzieki za odpowiedź。 Proszę popatrz tutaj .

标签: java gradle bitbucket-pipelines


【解决方案1】:

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

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)}" }
    }
}

【讨论】:

  • 我做了一点修改,以说明我有一个目录,其中包含生成的 jaxb 文件。除此之外,你赢了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
  • 2013-01-30
相关资源
最近更新 更多