[JAVA] Prise en charge de CheckStyle

Mémo de l'environnement de développement Java Je construis un environnement de développement avec, mais comme il y a beaucoup d'alertes dans CheckStyle, je vais enquêter et décrire comment y faire face.

1.CheckStyle

1-1. Réglage du 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. Téléchargement du fichier de configuration

Télécharger ci-dessous?

https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

Le fichier pom.xml contient les sites suivants définis pour la sélection. https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/custom-checker-config.html

Et si j'obtiens une erreur?

https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

Il peut y avoir une différence entre le fichier de règles et les versions de bibliothèque.

2-1 L'instruction import n'est pas dans l'ordre lexical.

2-1-1. Cause

Vous serez averti si votre package de classe est au début de l'alphabet que org (comme jp).

1-2. Solution par Eclipse

  1. [Fenêtre] - [Paramètres]
  2. [Java] - [Style de code] - [Organiser l'importation]
  3. Créez votre propre package (jp) avec le bouton "Nouveau" et déplacez-le en haut de org.

2.Nom du paquet'Doit correspondre au modèle '^ [a-z] + (. [A-z] [a-z0-9] *) * $'.

Cause Le nom du package contient un symbole tel que "_".

2-1. Solution par CheckStyle

Avant correction


    <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>

Remplacez la règle ci-dessus par INFO au lieu d'avertissement. Vous pouvez spécifier ignorer, info, avertissement ou erreur.

modifié


    <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 de référence

Partager des règles telles que CheckStyle avec plusieurs modules https://ssogabe.hatenadiary.org/entry/20091219/1261196056

Cause

Solution Eclipse

Solution CheckStyle

Recommended Posts

Prise en charge de CheckStyle
Paramètres CheckStyle
Prise en charge de SonarQube Java 11
Période de support Java
Période de support Java8, 9, 10
Prise en charge de CheckStyle "Ne pas utiliser de conditions en ligne"