Gradle 插件中的程序依赖性规范

Gradle 插件中的程序依赖性规范,gradle,Gradle,在多项目构建中,我可以在subproject build.gradle文件中将依赖关系声明为 project compile(':projectA') 我可以在插件中将其转换为以下内容 project.dependencies.add("compile", project.parent.findProject("projectA")) 如果我想在build.gradle中指定依赖项的配置,我可以使用 compile project(path: ':projectA', configurati

在多项目构建中,我可以在subproject build.gradle文件中将依赖关系声明为

project compile(':projectA')
我可以在插件中将其转换为以下内容

project.dependencies.add("compile", project.parent.findProject("projectA"))
如果我想在build.gradle中指定依赖项的配置,我可以使用

compile project(path: ':projectA', configuration: 'testUtilRuntime')
但我无法解决如何在插件中指定这一点。请帮忙


我尝试使用DefaultProjectDependencyFactory.create等,但这需要一个ProjectInternal,findProject返回一个DefaultProject

我想你指的是依赖项{compile project:projectA},它在Groovy插件中转换为project.dependencies{compile project.project:projectA}。第二个代码段转换为project.dependencies{compileprojectpath:':projectA',配置:'testUtilRuntime'}。这里不需要限定内部项目,因为它引用的是DependencyHandlerproject而不是Projectproject。

与您的project.dependencies{compile projectpath:':projectA',configuration:'testUtilRuntime'}我得到以下*错误:评估项目时出现问题:'projectB'>在项目“:projectB”上找不到参数[{path=:projectA,configuration=testUtilRuntime}]的方法调用。在评估项目时,将project.project放在那里会挂起渐变。这是Gradle 1.6,由于引入SoftwarePuting project的繁文缛节,我现在有点拘泥于该版本。project无法工作,因为您需要调用DependencyHandlerproject,而不是Projectproject。如果project本身不起作用,那么可能是由于您的其他代码,例如,您可能已经有一个名为project的局部变量。为了安全起见,请使用完全限定的project.dependencies.project.Ah是的,我有一个名为project的局部变量,将project.dependencies.project放在一起。