Gradle:文件依赖性



我是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

最新更新