gradle如何使用配置

gradle如何使用配置,gradle,configuration,war,Gradle,Configuration,War,gradlewar插件中的示例:为什么需要像下面这样定义morelib?请解释: configurations { moreLibs } dependencies { moreLibs ":otherLib:1.0" } war { classpath configurations.moreLibs webXml = file('src/someWeb.xml') } 我们能在配置中定义什么吗 configurations { foobar } 我

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

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
目录

如果没有必要,你不必这么做。
运行时
配置中的所有库(以及
编译
配置中的库)都会自动添加到wars
lib
目录中。但是,如果出于某种原因需要在其中添加不想添加到
编译
运行时
中的其他lib,可以这样做

另一个自定义配置有用的例子是,如果您想使用自定义Ant任务。您可以定义一个自定义配置,将Ant任务依赖项添加到其中,然后让Gradle对其进行传递性解析,并可以将整个文件集作为类路径添加到Ant的taskdef中