我正在尝试最近在gradle 1.5中发布的新Sonar Runner任务.我想做的是能够使声纳转轮任务依赖于另一个任务,这样我就可以为这个项目正确设置声纳属性(即sonar.sources,sonar.binaries,sonar.libraries,sonar.java.source ,sonar.java.target).
具体来说,我正在使用一个名为bnd的osgi构建工具,它将在执行ant init任务时提供这些值(请注意,虽然我包含了默认的bnd build.xml文件,但我的完整构建实际上是使用gradle完成的).
我认为通过这样做可以自定义声纳运行器任务(这是一个多模块构建):
subprojects {
sonarRunner.dependsOn init
}
Run Code Online (Sandbox Code Playgroud)
最终添加这样的东西(从我对bnd ant变量的理解):
subprojects {
sonarRunner {
sonarProperties {
property "sonar.java.source", ant.property["project.sourcepath"]
property "sonar.java.target", ant.property["project.output"]
property "sonar.sources", ant.property["project.allsourcepath"]
property "sonar.libraries", ant.property["project.buildpath"]
}
}
sonarRunner.dependsOn init
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我尝试添加dependsOn时,我收到错误:
* What went wrong:
A problem occurred evaluating root project 'myproject'.
> Could not find property 'init' on project ':com.company.myproject.mymodule'.
Run Code Online (Sandbox Code Playgroud)
如果我尝试让sonarRunner依赖于gradle任务,我会收到以下错误:
* What went wrong:
A problem occurred evaluating root project 'myproject'.
> Could not find method dependsOn() for arguments [task …Run Code Online (Sandbox Code Playgroud)