有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java禁用声纳中的最大继承深度

我在禁用“最大继承深度”问题时遇到问题。 声纳规则描述中写道,它的乌贼是: “乌贼:最大深度”。 因此,在我的POM中,我有:

<sonar.issue.ignore.multicriteria>e11</sonar.issue.ignore.multicriteria>
<sonar.issue.ignore.multicriteria.e11.rulekey>squid:MaximumInheritanceDepth</sonar.issue.ignore.multicriteria.e11.rulekey>
<sonar.issue.ignore.multicriteria.e11.resourceKey>**/GUIpanel.java</sonar.issue.ignore.multicriteria.e11.resourceKey>

但生成失败,显示以下错误消息:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project parent: Unable to load component class org.sonar.scanner.phases.AbstractPhaseExecutor: Unable to load component class org.sonar.scanner.issue.ignore.scanner.IssueExclusionsLoader: Unable to load component class org.sonar.scanner.issue.ignore.pattern.IssueExclusionPatternInitializer: Exclusions > Issues : Invalid format. The second field does not define a rule pattern: **/GUIpanel.java,,* -> [Help 1]

我理解它告诉我,为类GUIpanel提供的排除无法执行,因为第二个字段(规则键)没有定义规则模式,所以编写是错误的

squid:MaximumInheritanceDept

那么,解决方案是什么呢


共 (1) 个答案

  1. # 1 楼答案

    解决了。ruleKey必须大写K,我把它写为:ruleKey,但它应该是ruleKey

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <sonar.issue.ignore.multicriteria>e11</sonar.issue.ignore.multicriteria>
        <sonar.issue.ignore.multicriteria.e11.ruleKey>squid:MaximumInheritanceDepth</sonar.issue.ignore.multicriteria.e11.ruleKey>
        <sonar.issue.ignore.multicriteria.e11.resourceKey>**/*.java</sonar.issue.ignore.multicriteria.e11.resourceKey>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <jacoco.data.file>${project.build.directory}/jacoco.exec</jacoco.data.file>
        <jacoco.report.path>${project.reporting.outputDirectory}/jacoco.xml</jacoco.report.path>
        <sonar.language>java</sonar.language>
        <sonar.jacoco.reportPaths>${jacoco.data.file}</sonar.jacoco.reportPaths>
    </properties>