プロジェクトでCheckstyleを構成しようとしています。私は追加しました:
apply plugin: 'checkstyle'
checkstyle {
// assign the latest checkstyle version explicitly
// default version is very old, likes 5.9
toolVersion = '8.6'
// checkstyle.xml copy from:
// https://raw.githubusercontent.com/checkstyle/checkstyle/checkstyle-8.6/src/main/resources/google_checks.xml
// the version should be as same as plugin version
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
}
task Checkstyle(type: Checkstyle) {
source 'src/main/Java'
include '**/*.Java'
exclude '**/gen/**'
exclude '**/R.Java'
exclude '**/BuildConfig.Java'
// empty classpath
classpath = rootProject.files()
}
allprojects
のルートgradleファイルに。
しかし、./gradlew checkstyle
私は得る:
* What went wrong:
Execution failed for task ':app:Checkstyle'.
> Unable to create Root Module: config {/Users/user/Development/project/config/checkstyle/checkstyle.xml}, classpath {null}.
ルールを含むファイルでさえ、指定されたディレクトリにあります。
問題は、ルールファイルが見つからなかったことです。だから私は変更しました:
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
に:
configFile = file("${rootDir}/config/checkstyle/ckeckstyle.xml")
そして今、それは正しくそれを拾います。
これは、Android Gradleプラグインを3.3.0に更新したときに起こりました。
これを実行してください:
./gradlew checkstyle --stacktrace
おそらく、checkstyle.xml configファイルを確認する必要があります。
これらの2つのタグを移動する必要がありました。
<module name="SuppressionCommentFilter"/>
<!--Enable usage SUPPRESS CHECKSTYLE comment-->
<module name="SuppressWithNearbyCommentFilter">
<property name="commentFormat" value="CHECKSTYLE IGNORE"/>
<property name="checkFormat" value=".*"/>
<property name="influenceFormat" value="0"/>
</module>
内部
<module name="TreeWalker">
タグ
また、削除する必要がありました:
<module name="SuppressionCommentFilter"/>
config/checkstyle/checkstyle.xml
には、存在しないファイルへの参照が含まれていました。私の場合、経由:
<module name="SuppressionFilter">
<property name="file" value="config/checkstyle/checkstyle-suppressions.xml"/> <!-- Oops: No such file! -->
</module>
ファイルの作成config/checkstyle/checkstyle-suppressions.xml
問題を修正しました。
役立つ場合は、その内容(checkstyle.xml
):
<suppressions>
<suppress files="/generated/" checks="\w+"/>
<suppress files="/test/" checks="\w+"/>
</suppressions>
私も同様の問題と同じ例外メッセージを抱えていました。次の手順で問題を解決しました。
ツールのバージョンを8.16に更新しました。 8.1より前は、「configFile」プロパティの代わりに「configDir」を使用していました。
configDir = file("$rootProject.projectDir/etc/checkstyle")
以前:
configFile = file("$rootProject.projectDir/etc/checkstyle/checkstyle.xml")
さらに、ファイルではなくディレクトリを指すように変更された 'reportDir'プロパティがありました。
reportsDir = file("$project.buildDir/reports/checkstyle")
以前:
reportsDir = file("$project.buildDir/reports/checkstyle/checkstyle.xml")
私はJDK 11を使用していますが、それで動作しました。
私は非常によく似た問題を抱えていたので、基本的に@Bohemianの回答を使用しました。 checkStyleはファイルを見つけることができなかったので、必要に応じて強制的にフィードしました。私の場合、根本的な原因は、NetBeansのgradleプラグインがすべての「環境」変数を正しく伝播しないため、${basedir}/config/checkstyle/import-control.xml
失敗しました。 checkStyle
がNetBeansで実行されている場合、${basedir}
に設定されています $USER_HOME
、プロジェクトのルートの代わりに。回避策として、必要なファイルをホームディレクトリにコピーしました。これにより、checkStyle
が正しく実行されます。
Uいですが、何もないよりはましです。
このエラーは、構成ファイルを読み取れなかったときに発生します。 /Users/user/Development/project/config/checkstyle/checkstyle.xml
ファイルがありますか?