2017-05-16 4 views
0

私はsonar javaカスタムルールプラグインを、4.2.1.6971バージョンとSonarQubeプラットフォームで5.6.3で実行しています。TestInputFileBuilderが 'missing' sonar-java-pluginを更新しています

[INFO] Running checks.security.SystemExitCallsCheckTest 
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 
0.001 s <<< FAILURE! - in checks.security.SystemExitCallsCheckTest 
[ERROR] detected(checks.security.SystemExitCallsCheckTest) Time elapsed: 0s << ERROR! 
java.lang.NoClassDefFoundError: 
org/sonar/api/batch/fs/internal/TestInputFileBuilder 
at checks.security.SystemExitCallsCheckTest.detected(SystemExitCallsCheckTest.java:19) 

は、それはそう:

は最近、私は、と私はすべてのユニットテストで同じエラーを取得するプロジェクト「クリーンインストール」にしようとした後、最新の4.9.0.9858バージョンのJavaプラグインの依存関係を更新しようとしましたクラスのように TestInputFileBuilderが見つかりませんでしたが、Eclipseに依存関係のエラーはありません。ここで

は私のpom.xmlの一部です:

<properties> 
    <sonar.version>6.0</sonar.version> 
    <java.plugin.version>4.9.0.9858</java.plugin.version> 
    <sslr.version>1.21</sslr.version> 
    <gson.version>2.6.2</gson.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.sonarsource.sonarqube</groupId> 
     <artifactId>sonar-plugin-api</artifactId> 
     <version>${sonar.version}</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.sonarsource.java</groupId> 
     <artifactId>sonar-java-plugin</artifactId> 
     <type>sonar-plugin</type> 
     <version>${java.plugin.version}</version> 
     <scope>provided</scope> 
    </dependency> 

は、私はこのエラーの乗り心地を得るために何をすべき?別のユニットテストを実行しようとすると同じエラーが発生します。

ありがとうございます!

答えて

1

ソナーのバージョンをAPI 6.3にアップグレードする必要があります。これは、SonarJavaプラグインが内部的にこのファイルのためにこのAPIに依存しているからです:TestInputFileBuilder:https://github.com/SonarSource/sonarqube/blob/master/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/TestInputFileBuilder.javaこれは6.3で導入されました。

プラグインテストにこのAPIを使用する必要がありますが、5.6(LTS)で使用できないAPIを使用しない限り、LTSでカスタムルールを完全に実行できます。

+0

ありがとうございました! sonar.versionを6.3に変更するとその仕事ができました。また、assertj 3.6.1の依存関係を組み込んで動作させる必要がありました。 –

関連する問題