gradle无法在插件中添加项目依赖项

时间:2018-11-14 21:27:04

标签: java gradle

在多项目构建中,我想通过自定义插件在特定项目上添加功能。我想通过等效于以下插件的插件添加

dependencies {
    compile project(':shared:model')
}

在我的gradle插件中,我有这样的代码:

Map<String, String> sharedModel = new HashMap<>();
sharedModel.put("path", ":shared:model");
sharedModel.put("configuration", "compile");
target.getDependencies().project(sharedModel);

Gradle成功运行,但是相关性未添加到项目中。但是,如果我使用build.gradle添加了以上依赖关系,则可以正常运行。摇篮信息:

Gradle 4.10.2
------------------------------------------------------------

Build time:   2018-09-19 18:10:15 UTC
Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Mac OS X 10.13.5 x86_64 

谢谢您的建议。

1 个答案:

答案 0 :(得分:1)

要从您的自定义插件添加项目依赖项,您需要使用apply方法:

@Override
void apply(Project project) {
    Map<String, String> sharedModel = new HashMap<>()
    sharedModel.put("path", ":shared:model")
    project.dependencies.add("compile", project.dependencies.project(sharedModel))
}