gradle 配置的使用方式

gradle how configurations is used

gradle war 插件中的示例:为什么需要像下面这样定义 moreLibs?请解释:

configurations {
   moreLibs
}

dependencies {
      moreLibs ":otherLib:1.0"
}

war {
   classpath configurations.moreLibs 
   webXml = file('src/someWeb.xml')
}

我们可以在配置中定义任何东西吗?

configurations {
    foobar
}

这些我在很多地方都见过。谁能解释一下?

是的,您可以在配置块中写入任何内容,它将使用该名称创建一个新配置,您还可以进一步配置它,例如。 G。通过将其 transitive 属性 设置为 false 和其他内容。

自定义配置只是一个名称,您可以为其定义依赖项,然后由 Gradle 自动传递解析,并且可用于需要这些已解析文件的各种用途。

在您的示例中,您定义了一个 moreLibs 配置,向其添加一个依赖项,该依赖项将由 Gradle 传递解析,然后添加到 wars lib 目录中。

如果您不需要,则不必执行此操作。 runtime 配置中的所有库(以及 compile 配置中的库)都会自动添加到 wars lib 目录中。但是如果你出于某种原因需要额外的库,你不想添加到 compileruntime,你可以这样做。

自定义配置有用的另一个示例是您要使用自定义 Ant 任务。您定义一个自定义配置,向其添加 Ant 任务依赖项,然后让 Gradle 传递解析它并可以将整个文件集作为类路径添加到 Ant 的任务定义中。