了解示例度量.java在声纳自定义插件示例中



我确实需要一些帮助,这个类是如何工作的。我已经在几个插件中以类似的方式看到了这段代码,但是即使我将确切的代码复制到我的 IDE 中,我也会出现错误。

首先是有问题的代码@ github:

import static java.util.Arrays.asList;
import java.util.List;
import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.Metric;
import org.sonar.api.measures.Metrics;
public class ExampleMetrics implements Metrics {
  public static final Metric<Integer> FILENAME_SIZE = new Metric.Builder("filename_size", "Filename Size", Metric.ValueType.INT)
    .setDescription("Number of characters of file names")
    .setDirection(Metric.DIRECTION_BETTER)
    .setQualitative(false)
    .setDomain(CoreMetrics.DOMAIN_GENERAL)
    .create();
  public static final Metric<Integer> FILENAME_SIZE_RATING = new Metric.Builder("filename_size_rating", "Filename Size Rating", Metric.ValueType.RATING)
    .setDescription("Rating based on size of file names")
    .setDirection(Metric.DIRECTION_BETTER)
    .setQualitative(true)
    .setDomain(CoreMetrics.DOMAIN_GENERAL)
    .create();
  @Override
  public List<Metric> getMetrics() {
    return asList(FILENAME_SIZE, FILENAME_SIZE_RATING);
  }
}

这是我得到的错误:

Type mismatch: cannot convert from List<Metric<Integer>> to List<Metric>

如果我执行以下操作:

public List<Metric<Integer>> getMetrics() {
         return asList(FILENAME_SIZE, FILENAME_SIZE_RATING);
    }

我收到此错误:

The return type is incompatible with Metrics.getMetrics()

希望解释一下项目中如何解决这个问题。

解决

将以下内容添加到您的pom中.xml

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>3.5.1</version>
     <configuration>
     <source>${jdk.min.version}</source>
     <target>${jdk.min.version}</target>
     </configuration>
</plugin>

你在尝试吗

<dependency>
  <groupId>org.sonarsource.sonarqube</groupId>
  <artifactId>sonar-plugin-api</artifactId>
  <version>5.6</version>
  <scope>provided</scope>
</dependency>

在你的绒球.xml ?

最新更新