configurations.compile.collect中的Gradle命令

configurations.compile.collect中的Gradle命令,gradle,Gradle,我偶然发现了一篇关于如何在Gradle中创建胖jar文件的文章 jar { from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 我的问题是 jar元素是什么?这是一种声明属性的方法。据我所知,我可以如下定义属性: 建议1{ 建议2{ prop3.prop4=5 } } 这相当于:prop1.prop2.prop3.prop4=5 from声明:这是一种方法吗?我的意思是它是从(par

我偶然发现了一篇关于如何在Gradle中创建胖jar文件的文章

jar {
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
我的问题是

  • jar元素是什么?这是一种声明属性的方法。据我所知,我可以如下定义属性:

    建议1{ 建议2{ prop3.prop4=5 } }

  • 这相当于:prop1.prop2.prop3.prop4=5

  • from声明:这是一种方法吗?我的意思是它是从(params)来的
  • 我还发现了一篇关于ConfigurationContainer的文章:

    然而,我无法在这里链接这些信息以获得完整的图片

  • 是一个任务名称。这与财产无关。是每个Gradle构建的基本构建块。它相当于
    tasks.jar

  • from
    是该类的一种方法。许多任务从
    CopySpec
    类扩展,并从
    方法继承

  • configurations.compile
    是对
    compile
    中定义的所有工件的引用

    是一个方法调用,其中一个参数为<代码>{}
    是一个空闭包

    {it.isDirectory()?it:zipTree(it)}
    是返回要包含在JAR中的文件集合的闭包(aka函数)
    it
    是每个闭包的默认参数,在本例中,它将是
    配置中的JAR工件实例。compile
    或本地文件路径实例。它可能是一个文件路径,因为
    配置
    支持编译的
    文件的JAR和本地文件系统路径

    闭包中的逻辑形式为
    ?是一种从JAR中提取所有文件并将其作为集合返回的方法


    所有文件(目录或分解的jar)都从闭包中返回,然后通过
    collect
    组合成一个集合(例如
    FileTree
    )。

    有关jar任务(以及from方法)的更多信息,请选中:。@Amnon您要查找的代码段的具体类型是什么?问题提供的代码被截取,并询问每个部分代表什么。如果您对此代码段有不同的问题,您可以打开一个新问题,或者在回答评论中礼貌地询问细节。