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進口。 但是由於我必須刪除很多規則/模塊,所以導入的值會大大減少。
請注意,在鏈接的文件中有3個地方可找到CLASS_DEF。 – benzonico
你是對的。我不得不移除包含第三個CLASS_DEF的AnnotationLocation的一個實例,因爲SonarQube導入抱怨重複。maven-checkstyle-plugin沒有重複的問題... – cjr