gradle war插件中的示例:为什么需要定义更多类似以下内容的库?请解释:
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
目录中。但是,如果由于某种原因,您需要在其中不想添加到compile
或runtime
的其他库,则可以通过这种方式进行。
自定义配置有用的另一个示例是是否要使用自定义Ant任务。您定义一个自定义配置,向其中添加Ant任务依赖项,然后让Gradle可传递地解析它,并且可以将整个文件集作为类路径添加到Ant的taskdef。
关于gradle - gradle如何使用配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770629/