我确实需要一些帮助,确切地说这个课程的工作原理。我已经在几个插件中以类似的方式看到了这段代码,但即使我将确切的代码复制到我的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>
答案 0 :(得分:0)
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api</artifactId>
<version>5.6</version>
<scope>provided</scope>
</dependency>
你的pom.xml中有吗?