※. このページには、根本的な解決方法は書いていません。解決方法のわかる方は教えてください。
EclipseのProblemビューにエラーが出た。
何年も続いているプロジェクトをインポートするとちょくちょく出る。
Discription | ...省略... | 型 |
---|---|---|
Checkstyle execution failed due to an internal error. Please check the error log for details | Checkstyle 問題 |
Javaのソースで見つけた CHECKSTYLE:OFF って何?から知るCheckstyleなんてQiitaに投稿しちゃうぐらいCheckStyleがわかっていない。
このエラーが出ていても動く・・・がプロジェクトに赤×印が出ているのは嫌。
このエラーが出たら取あえず{ワークスペースのディレクトリ}/.metadata/.log
を見てみます。
事象 : Property 'allowMissingPropertyJavadoc' does not exist
- 環境
- Eclipse IDE for Enterprise Java Developers.Version: 2018-12 (4.10.0)
- Eclipse Checkstyle 8.28.0.202001092018
!ENTRY net.sf.eclipsecs.core 4 0 2020-03-16 10:17:02.345
!MESSAGE Checkstyle-Plugin: cannot initialize module TreeWalker - cannot initialize module JavadocMethod - Property 'allowMissingPropertyJavadoc' does not exist, please check the documentation
!STACK 0
com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module TreeWalker - cannot initialize module JavadocMethod - Property 'allowMissingPropertyJavadoc' does not exist, please check the documentation
at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:473)
...省略...
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
...省略...
<module name="JavadocMethod">
<!-- ↓これがエラー -->
<property name="allowMissingPropertyJavadoc" value="true"/>
<property name="suppressLoadErrors" value="true"/>
</module>
原因 : allowMissingPropertyJavadoc
がバージョン8.25で削除されたから
Release 8.25
JavadocMethodCheck: remove deprecated properties ignoreMethodNamesRegex, minLineCount, allowMissingJavadoc, allowMissingPropertyJavadoc. Author: rnveach #7096
checkstyle – Release Notes
対応 : allowMissingPropertyJavadoc
を削除してMissingJavadocMethodCheck
を追加する
(ざっくり訳)
このプロパティーは、8.20でMissingJavadocMethodCheckに移行したため、8.25で削除されました。前と同じ動作を継続するには、MissingJavadocMethodCheckを追加することをお勧めします。
checkstyle - Gradle checkstyleTest fails "CheckstyleException: Property 'allowMissingPropertyJavadoc' does not exist" - Stack Overflow
書き方これで本当にあっているのだろうか・・・・
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
...省略...
<module name="JavadocMethod">
<property name="suppressLoadErrors" value="true"/>
</module>
<!-- ↓追加してみた -->
<module name="MissingJavadocMethodCheck">
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
事象 : Property 'suppressLoadErrors' does not exist
- 環境
- Eclipse IDE for Enterprise Java Developers.Version: 2018-12 (4.10.0)
- Eclipse Checkstyle 8.28.0.202001092018
!ENTRY net.sf.eclipsecs.core 4 0 2020-03-16 10:53:47.566
!MESSAGE Checkstyle-Plugin: cannot initialize module TreeWalker - cannot initialize module JavadocMethod - Property 'suppressLoadErrors' does not exist, please check the documentation
!STACK 0
com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module TreeWalker - cannot initialize module JavadocMethod - Property 'suppressLoadErrors' does not exist, please check the documentation
at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:473)
...省略...
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
...省略...
<module name="JavadocMethod">
<!-- ↓これがエラー -->
<property name="suppressLoadErrors" value="true"/>
</module>
<module name="MissingJavadocMethodCheck">
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
原因 : suppressLoadErrors
は削除された、かもしれないから
checkstyle – Release NotesをsuppressLoadErrors
で検索しても削除された的な記述はない。
が、checkstyle – Javadoc CommentsのJavadocMethod
にsuppressLoadErrors
はない・・・なんだろう・・・きっと削除されたんだろう・・・8.26あたりで。
(雑な訳)
プロパティーlogLoadErrors
とsuppressLoadErrors
を廃止し、これらの機能を削除したようです。
upgrade to checkstyle 8.26 · Issue #246 · checkstyle/sonar-checkstyle
対応 : 取あえずsuppressLoadErrors
を削除する
代わりに何かを定義したほうがいい気がするが、どうすればいいのかわからないので取あえず削除しておく
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
...省略...
<module name="JavadocMethod" />
<module name="MissingJavadocMethodCheck">
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
事象 : TreeWalker is not allowed as a parent of LineLength
- 環境
- Eclipse IDE for Enterprise Java Developers.Version: 2018-12 (4.10.0)
- Eclipse Checkstyle 8.28.0.202001092018
!ENTRY net.sf.eclipsecs.core 4 0 2020-03-16 12:25:10.250
!MESSAGE Checkstyle-Plugin: cannot initialize module TreeWalker - TreeWalker is not allowed as a parent of LineLength Please review 'Parent Module' section for this Check in web documentation if Check is standard.
!STACK 0
com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module TreeWalker - TreeWalker is not allowed as a parent of LineLength Please review 'Parent Module' section for this Check in web documentation if Check is standard.
at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:473)
...省略...
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
...省略...
<module name="LineLength">
<property name="max" value="120"/>
</module>
...省略...
原因 : 8.24からLineLength
の親モジュールがTreeWalker
からChecker
になったから
Release 8.24
Change LineLength Check parent from TreeWalker to Checker. Author: rnveach, Roman Ivanov #2116
checkstyle – Release Notes
対応 : LineLength
をChecker
直下に移動する
<module name="Checker">
<property name="severity" value="warning"/>
<module name="LineLength">
<property name="max" value="120"/>
</module>
<module name="TreeWalker">
...省略...
CheckStyleのチェック項目で関わったのぐらいは調べてみた
- 参考
module | property | 説明 | 削除と追加情報 |
---|---|---|---|
JavadocMethod | - | メソッドまたはコンストラクタのJavadocをチェックする | 3.0追加 |
JavadocMethod | allowMissingPropertyJavadoc | プロパティメソッドのJavadocそのものが存在しない事を許可するかどうかを設定します。 プロパティメソッドとは、いわゆるGetter/Setterメソッドの事を指します。 |
8.25削除 |
JavadocMethod | logLoadErrors | 英語が難しくてよくわからない・・・ | 8.26削除? |
JavadocMethod | suppressLoadErrors | logLoadErrorsがtrueに設定されている場合、 logLoadErrorsがtrueに設定されたときに生成された違反は、 チェックスタイルレポートで違反として報告されなくなる。 |
8.26削除? |
MissingJavadocMethod | - | メソッドまたはコンストラクタの欠落したJavadocコメントをチェックします。 | 8.21追加 |
MissingJavadocMethod | allowMissingPropertyJavadoc | プロパティ(セッターとゲッター)の アクセサー・メソッドで欠落しているJavadocを許可するかどうかを制御します。 |
8.21追加 |