gradle war插件中的示例:为什么需要定义如下的moreLibs?请解释一下:
configurations {
moreLibs
}
dependencies {
moreLibs ":otherLib:1.0"
}
war {
classpath configurations.moreLibs
webXml = file('src/someWeb.xml')
}
我们可以在配置中定义任何内容吗?
configurations {
foobar
}
我在很多地方见过这些。谁能解释一下?
答案 0 :(得分:3)
是的,您可以在配置块中编写任何内容,它将创建一个具有该名称的新配置,您还可以进一步配置它,例如: G。通过将其transitive
属性设置为false
和其他内容。
自定义配置只是一个名称,您可以为其定义依赖关系,然后由Gradle自动解决,并且可以用于需要这些已解析文件的各种用途。
在您的示例中,您定义了一个moreLibs
配置,为其添加一个依赖项,该依赖项将由Gradle传递解决,然后添加到wars lib
目录中。
如果您不需要,则无需执行此操作。 runtime
配置中的所有库(以及compile
配置中的库)都会自动添加到war lib
目录中。但如果由于某些原因需要额外的库,而您不想添加到compile
或runtime
,则可以这样做。
自定义配置有用的另一个示例是,如果要使用自定义Ant任务。您可以定义自定义配置,向其添加Ant任务依赖项,然后让Gradle过渡解决它,并将整个文件集作为类路径添加到Ant的taskdef中。