如何在gradle插件中添加自定义依赖关系处理程序?

Yev*_*niy 7 gradle

我想为我的gradle插件用户提供一种添加所有必要依赖项的简单方法.像gradleApi()localGroovy().

我发现 - gradleApi和localGroovy--都在其中定义DependencyHandler并实现DefaultDependencyHandler.我可以在我的插件中提供Dependencyhandler扩展的自定义实现DefaultDependencyHandler吗?或者是否有更简单的方法来实现我想要的?

thx提前.

Pet*_*ser 10

一种解决方案是让插件在dependencies容器上安装额外的方法:

def jarDir = ...

project.dependencies.ext.pluginDeps = { 
    project.fileTree(jarDir) // filter file tree if necessary 
}
Run Code Online (Sandbox Code Playgroud)

用户可以这样做:

dependencies {
    compile pluginDeps()
}
Run Code Online (Sandbox Code Playgroud)

额外的属性/方法通常仅用于构建脚本(因为它们不受可以被发现和推理的模型的支持),但在这种特殊情况下(以及Gradle 2.1)我无法思考一个明显更好的解决方案.

PS:请记住,对于基于文件(而不是存储库)的依赖项,不会发生版本冲突解决.