【问题标题】:java.lang.IllegalArgumentException when running gradle sonarRunner运行 gradle sonarRunner 时出现 java.lang.IllegalArgumentException
【发布时间】:2014-02-23 21:49:46
【问题描述】:

我在使用 Gradle 在名为“Sample Project”的示例 Android 应用程序上运行 sonarRunner 任务时遇到了问题。

我在 mt build.gradle 脚本中有如下配置:

apply plugin: "sonar-runner"
sonarRunner {
    sonarProperties {
        property "sonar.host.url", "http://localhost:9000/"
        property "sonar.jdbc.url", "jdbc:h2:tcp://localhost:9092/sonar"
        property "sonar.jdbc.driverClassName", "org.h2.Driver"
        property "sonar.jdbc.username", "sonar"
        property "sonar.jdbc.password", "sonar"
        property "sonar.language", "java"
        property "sonar.sources", "src/main/java"
        property "sonar.test", "src/test/java"
        property "sonar.binaries", "build"
    }
}

所以当我跑步时:

gradle sonarRunner

我明白了:

* What went wrong:
Execution failed for task ':Sample Project:sonarRunner'.
> java.lang.IllegalArgumentException

使用命令:

gradle sonarRunner --stacktrace

我明白了:

.
.
.
Caused by: java.net.URISyntaxException: Illegal character in query at index 89: http://localhost:9000/batch_bootstrap/properties?project=com.company.demo.gradle:Sample Project&dryRun=false

【问题讨论】:

    标签: android gradle sonarqube


    【解决方案1】:

    查看堆栈跟踪,我注意到问题是因为插件使用的 URL 中的空间很宽:

    http://localhost:9000/batch_bootstrap/properties?project=com.company.demo.gradle:Sample Project&dryRun=false
    

    为了解决这个问题,我在 build.gradle 脚本中添加了另一个属性:

    property "sonar.projectKey", "standard-project-layout:sample-project"
    

    这解决了我的问题,所以现在我的 build.gradle 脚本的配置如下所示:

    apply plugin: "sonar-runner"
    sonarRunner {
        sonarProperties {
            property "sonar.host.url", "http://localhost:9000/"
            property "sonar.jdbc.url", "jdbc:h2:tcp://localhost:9092/sonar"
            property "sonar.jdbc.driverClassName", "org.h2.Driver"
            property "sonar.jdbc.username", "sonar"
            property "sonar.jdbc.password", "sonar"
            property "sonar.language", "java"
            property "sonar.sources", "src/main/java"
            property "sonar.test", "src/test/java"
            property "sonar.binaries", "build"
    
            // There is a problem when using "standard-project-layout:Sample Project" (by default)
            // because of the wide space
             property "sonar.projectKey", "standard-project-layout:sample-project"
        }
    }
    

    【讨论】:

    • 正确。这是 Gradle 使用的底层 sonar-runner 库的一个已知限制,应该在那里修复(例如,通过打印适当的错误消息)。
    猜你喜欢
    • 2014-09-27
    • 2018-02-04
    • 2020-07-07
    • 1970-01-01
    • 2016-01-11
    • 2022-10-02
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多