代码之家  ›  专栏  ›  技术社区  ›  gabriel119435

我怎样才能发现什么configurations.default.collect配置.default.collect意思是在格拉德尔?

  •  0
  • gabriel119435  · 技术社区  · 5 年前

    我在试着用kotlin/gradle项目做一个jar。最近我偶然发现了一个例外:

    Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics

    repo 这已经解决了这个问题。但是,我找不到有关此块的具体文档:

    configurations.default.collect {
        it.isDirectory() ? it : zipTree(it)
    

    我的意思是,我想知道将来当我遇到其他问题时,我能自己想出可能的解决办法。但这看起来像是不知从哪里冒出来的。例如, here ,我们有 configurations.compile.collect . 有什么区别?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Cisco    5 年前

    您需要对Gradle有深入的了解,并对Groovy有一定的了解,才能理解到底发生了什么。

    jar {
        from {
            configurations.default.collect {
                it.isDirectory() ? it : zipTree(it)
            }
        }
    }
    
    • 这个 jar Jar Gradle task 罐子 任务。

    • 作者正在调用 from(java.lang.Object[]) 并提供目录列表或ZIP文件。

    • configurations ConfigurationContainer ,这是Gradle将依赖项放入“bucket”的主要方式。
    • configurations.default 是说“给我一个名为‘default’的配置。”还有很多其他的 容器 Gradle提供的方法。参见Javadoc here
    • 这个 .collect { } 是一个常规的方法。你可以看看 here
    • 最后 zipTree() here