2015-09-02 22 views
2

SonarQube版本5.1.2SonarQube CheckStyle的導入錯誤:價值 'CLASS_DEF' 必須是一個:LITERAL_TRY,LITERAL_CATCH,LITERAL_FINALLY,LITERAL_IF,LITERAL_ELSE

的Checkstyle插件版本2.3

我試圖導入google_checks.xml 。 這個checkstyle配置在maven-checkstyle-plugin中工作得很好。 SonarQube正在生成以下錯誤

Value 'CLASS_DEF' must be one of : LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE. 

錯誤描述並不對我來說很有意義。

'CLASS_DEF' 令牌在兩個地方提到:

 <module name="RightCurly"> 
     <property name="option" value="alone"/> 
     <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT,INSTANCE_INIT"/> 
    </module> 

 <module name="AtclauseOrder"> 
     <property name="tagOrder" value="@param, @return, @throws, @deprecated"/> 
     <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/> 
    </module> 

任何想法?

更新:根據@benzonico的更多信息請求。

即使將日誌設置爲DEBUG,我也沒有從SonarQube日誌中獲得太多幫助。 我將重新跟蹤我試圖導入google_checks.xml的步驟。

初次導入。獲得日誌條目

The definition of the profile 'null' (language 'null') contains multiple occurrences of the 'checkstyle:com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck' rule. The plugin which declares this profile should fix this. 

在第63行刪除<module name="RightCurly"/>並嘗試重新導入。 了日誌條目:

The definition of the profile 'null' (language 'null') contains multiple occurrences of the 'checkstyle:com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheck' rule. The plugin which declares this profile should fix this. 

還有的AnnotationLocation出現兩次。 刪除第166行的第一個匹配項並嘗試重新導入。 這個時候,有一個從

2015.09.08 09:29:03 DEBUG web[http] GET /profiles/create_form?language=java | time=80ms 

..however沒有日誌條目之外,在Web UI顯示紅色的右下面的消息強調了頂欄下:

Rule template can't be activated on a Quality profile: checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.IllegalTokenTextCheck [hide] 

刪除整個IllegalTokenText模塊,並嘗試重新導入。 WebUI中錯誤:

Value ' LITERAL_FINALLY' must be one of : LITERAL_WHILE, LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_DO, LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, INSTANCE_INIT, STATIC_INIT, LITERAL_SWITCH, LITERAL_CASE, LITERAL_SWITCH, LITERAL_DEFAULT, ARRAY_INIT. [hide] 

在管線52,

<property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> 

除去在上面的行的每個令牌之前領先 '' 的空間。 注意, '' 是精細與其它代幣(例如CLASS_DEF,METHOD_DEF等) WebUI中的錯誤:

Value 'TEXT' must be one of : text, stmt. [hide] 

造 '上線51小寫TEXT' .. WebUI中的錯誤:

Value 'CLASS_DEF' must be one of : LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE. [hide] 

有兩行包含'CLASS_DEF',第60行和第173行。 拆卸線58整個RightCurly模塊,其中包含CLASS_DEF WebUI中錯誤第一次發生:

Rule template can't be activated on a Quality profile: checkstyle:com.puppycrawl.tools.checkstyle.checks.naming.TypeNameCheck [hide] 

在這一點上,我只是刪除模塊只是爲了看看什麼需要進口什麼.. 刪除整個TypeName模塊上線91 WebUI中的錯誤:

Rule template can't be activated on a Quality profile: checkstyle:com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck [hide] 

刪除線91上 WebUI中錯誤的整個MemberName模塊:

Rule template can't be activated on a Quality profile: checkstyle:com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck [hide] 

移除上線96 WebUI中錯誤的整個LocalVariableName模塊:

Value ' BOR' must be one of : ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN. [hide] 

此時,我剛刪除所有剩餘的模塊與上述線開始只是爲了看到這結束.. 31進口。 但是由於我必須刪除很多規則/模塊,所以導入的值會大大減少。

+0

請注意,在鏈接的文件中有3個地方可找到CLASS_DEF。 – benzonico

+0

你是對的。我不得不移除包含第三個CLASS_DEF的AnnotationLocation的一個實例,因爲SonarQube導入抱怨重複。maven-checkstyle-plugin沒有重複的問題... – cjr

回答

0

鑑於我在checkstyle documentation中讀到的內容,我懷疑問題出在他右捲曲規則上。這應該工作,但它可能取決於checkstyle的版本。請確定您使用的sonarqube checkstyle-plugin版本,我會相應地更新我的答案。

+0

添加了SonarQube Checkstyle插件版本:2.3另外,從與SonarSource ,我聽說他們沒有花費很多精力維護這些插件。基本上,他們說:我們已經爲您導入了checkstyle規則。不過,我希望能夠導入我的checkstyle規則集,然後可能考慮使用Checkstyle和Maven和Jenkins切換到SonarQube規則。 – cjr

+0

@cjr鑑於我是一名SonarSource員工,並且我在java插件上工作(請參閱我的個人資料),我傾向於分享Java Plugin規則更好的感覺;)然而,我們仍然保持checkstyle,findbugs和pmd插件 – benzonico

+0

你能分享提出的錯誤堆棧跟蹤嗎?我無法弄清楚代碼的哪一部分正在產生這個錯誤。 – benzonico

相關問題