我是Gradle的新手,并且对其任务驱动的方法和可定制性着迷。因此,我有一个问题,希望可以帮助我了解如何做基础之外的事情。
假设我有一个简单的文本文件,其中包含有关项目依赖项的信息。例如,
之类的东西- dependency1
from: 'foobar'
version: '1'
- dependency2
from: 'foobaz'
version: '1'
请注意,这些不是我有一些代码,从此文件中可以按以下方式生成一个文件:
compile 'commons-lang:commons-lang 2.6'
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4'
是否有一种方法可以配置我的项目,以便从该文件中获取项目的依赖项(不是仅限)?
确实要注意,文本文件也用于生成其他任务使用的其他工件(例如,要添加到Docker容器中的文件),因此,尽管可以说,可以声明这些依赖项通常并生成文本文件,此时这样做并不是一个琐碎的过程。
是的,您可以编写自己的groovy函数来解析文件并创建列表。然后,您可以将此地图传递给依赖项关闭:
List<String> compileLibraries() {
// ... parse yaml and return list
}
dependencies {
compile compileLibraries()
}
此外,要使用YAML放置库,请考虑在Special BuildSRC子文件夹中设置自定义的Gradle子标记,并在此处编写您的助手功能。
有关更多详细信息,请参见此旧帖子:https://discuss.gradle.org/t/programmately-adding-dependencies/7575/12
以及用于buildsrc项目的此处:https://docs.gradle.org/current/userguide/organizing_build_logic.html#sec:build_sources