如何在Gradle插件中设置任务属性

时间:2015-05-29 20:24:51

标签: gradle sonarqube sonar-runner gradle-custom-plugin

我正在创建一个gradle插件来应用sonar-runner插件并默认许多值,例如声纳主机URL和声纳JDBC URL。我不知道如何设置属性。

当我在build.gradle中设置它时,我使用:

apply plugin: 'sonar-runner'

sonarRunner {
    sonarProperties {
        property 'sonar.host.url', 'http://mySonar.company.com'
        property 'sonar.jdbc.url', 'jdbc:mysql://127.0.0.1:1234/sonar'
    }
}

我的gradle插件看起来像:

class MySonarPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.apply plugin: 'sonar-runner'
        project.configurations {
            sonarRunner {
                sonarProperties {
                    property 'sonar.host.url', 'http://mySonar.company.com'
                    property 'sonar.jdbc.url', 'jdbc:mysql://127.0.0.1:1234/sonar'
                }
            }
        }
    }
}

通过此设置,我得到No signature of method例外。我该如何设置这些属性?

1 个答案:

答案 0 :(得分:2)

我发现我可以使用project.getExtensions().sonarRunner.sonarProperties{ ... }来设置声纳属性。见下面的例子。

class MySonarPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.apply plugin:'sonar-runner'
        project.getExtensions().sonarRunner.sonarProperties {
            property 'sonar.host.url', 'http://mySonar.company.com'
            property 'sonar.jdbc.url', 'jdbc:mysql://127.0.0.1:1234/sonar'
        }
    }
}
相关问题