2017-05-16 23 views
0

因此,我有一個聲納java自定義規則插件,運行在4.2.1.6971版本和SonarQube平臺5.6.3上。TestInputFileBuilder'missing'while update sonar-java-plugin

最近我嘗試更新,並試圖「乾淨安裝」項目我得到的所有單元測試相同的錯誤後的Java插件的依賴到最新4.9.0.9858版本:

[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) 

似乎像類 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依賴項才能使其工作。 –