Gradle编译文件和coppile fileTree有什么用

时间:2018-11-20 22:38:36

标签: gradle groovy

这是gradle构建脚本代码:

> x <- as.POSIXct('2018-11-20 12:12:12')
> format(x, "%w")
[1] "2"

据我了解,

依赖项是一种采取闭包的方法,将其委托属性设置为DependencyHandler对象并执行它。

编译是属于项目的Configuration对象

但是什么是文件 fileTree

1 个答案:

答案 0 :(得分:1)

首先要知道的是Gradle将AST用于dependecies关闭语法this answer here does a good job of explaining what AST is.

我将讨论上面的代码片段,您对将代码块委派给DependencyHandler(该行)是正确的 被here定义为

  

要声明配置的特定依赖关系,可以使用以下语法:

dependencies {
     configurationName dependencyNotation1, dependencyNotation2, ...
 }

这里要注意的重要一点是上面的代码是Gradle提供的语法,以使代码简洁明了。您也可以使用方法DependencyHandler.add(String,Object) 例如

dependencies {
          add('compile', fileTree(dir: "libs", include: "*.jar"))
  }

与上述语法相比,顶级语法使您可以在单个语句中添加多个依赖项,并且更加简洁。

fileTree()files()等是在Project中定义的方法。在DependencyHandler.add(String,Object)中,第二个参数的类型为Object,因此该方法以及依赖项语法可以接受许多类型的依赖项,例如ProjectDependency,其他Configuration s和FileCollection以及您提到的ConfigurableFileCollection的子类型。