0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CheckStyleの対応

Last updated at Posted at 2020-11-08

Javaの開発環境メモ
で開発環境を構築しているが、CheckStyleでアラートが大量に出ているので、その対応方法を調べて記載していく。

JenkinsをIEで表示して、ソースコードが表示されない問題はIEのため。
Chromeだと表示された。

1.CheckStyle

1-1.pomの設定

pom.xml
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>3.1.1</version>
				<dependencies>
					<dependency>
						<groupId>com.puppycrawl.tools</groupId>
						<artifactId>checkstyle</artifactId>
						<version>8.37</version>
					</dependency>
				</dependencies>
				<configuration>
					<configLocation>google_checks.xml</configLocation>
					<failsOnError>true</failsOnError>
					<failOnViolation>true</failOnViolation>
					<violationSeverity>error</violationSeverity>
					<consoleOutput>true</consoleOutput>
				</configuration>
				<executions>
					<execution>
						<id>checkstyle</id>
						<phase>verify</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

1-2.設定ファイルのダウンロード

以下からダウンロードする?

pom.xmlファイルは以下のサイトを選考に設定した。
https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/custom-checker-config.html

エラーになる場合は?

ルールのファイルとライブラリのバージョンに差があるのかもしれない。

2-1.インポート文が辞書式順序になっていません。

2-1-1.原因

自作のクラスのパッケージがorgよりもアルファベットの先頭にある場合(jpなど)に、警告になる。

1-2.Eclipseによる解決方法

  1. [ウィンドウ]-[設定]
  2. [Java]-[コード・スタイル]-[インポートの編成]
  3. 「新規」ボタンで自作のパッケージ(jp)を作成し、orgの上に移動する。

2.Package name 'パッケージ名' must match pattern '^[a-z]+(.[a-z][a-z0-9])$'.

原因 パッケージ名に「_」などの記号が含まれている。

2-1.CheckStyleによる解決方法

修正前
    <module name="PackageName">
      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
      <message key="name.invalidPattern"
             value="Package name ''{0}'' must match pattern ''{1}''."/>
    </module>

上記のルールを警告ではなくINFOに変更する。

指定できるのは ignore, info, warning, error のいずれか。

修正後
    <module name="PackageName">
      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
      <message key="name.invalidPattern"
             value="Package name ''{0}'' must match pattern ''{1}''."/>
             <property name="severity" value="info" />
    </module>

参考URL

マルチモジュールでCheckStyleとかのルールを共有する
https://ssogabe.hatenadiary.org/entry/20091219/1261196056

2-2.static importでアスタリスク使用

原因

2-2-2.Eclipseによる解決方法

  1. [ウインドウ]-[設定]
  2. [Java]-[コード・スタイル]-[インポートの編成]
  3. 「*に必要な静的インポート数’の値を【999】に変更。

これでアスタリスクは無くなるが、static importと通常のimportの間に空行を入れる必要がある。
そのため、static importは無くして、テストコードは「 Assertions.assertThat(」という書き方にする。

CheckStyleによる解決方法

原因

Eclipseによる解決方法

CheckStyleによる解決方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?