最近gradle 1.5でリリースされた新しいSonar Runnerタスクを試しています。私がやりたいことは、ソナー ランナー タスクを別のタスクに依存させて、このプロジェクトのソナー プロパティを正しく設定できるようにすることです (つまり、sonar.sources、sonar.binaries、sonar.libraries、sonar.java.source)。 、sonar.java.target)。
具体的には、ant init タスクが実行されたときにこれらの値を提供する bnd という osgi ビルド ツールを使用しています (デフォルトの bnd build.xml ファイルを含めている間、私の完全なビルドは実際には gradle を使用して行われていることに注意してください)。
これを行うことでソナーランナータスクをカスタマイズできると思いました(これはマルチモジュールビルドです):
subprojects {
sonarRunner.dependsOn init
}
最終的に次のようなものを追加します(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
}
残念ながら、dependsOn を追加しようとすると、エラーが発生します。
* What went wrong:
A problem occurred evaluating root project 'myproject'.
> Could not find property 'init' on project ':com.company.myproject.mymodule'.
sonarRunner を gradle タスクに依存させようとすると、次のエラーが発生します。
* What went wrong:
A problem occurred evaluating root project 'myproject'.
> Could not find method dependsOn() for arguments [task ':gradletask'] on org.gradle.api.sonar.runner.SonarRunnerExtension_Decorated@c4d7c0c.
ここで明らかな何かが欠けていますか?誰かが私を正しい方向に向けることができれば、それは大きな助けになるでしょう.