Вопрос: Maven Checkstyle: проверьте, не работает


Я работал над попыткой получить Checkstyle, работающий в Maven в Eclipse Indigo IDE некоторое время. Наконец, я подумал, что попрошу совета по этому поводу.

Я использую Eclipse Indigo и пытаюсь настроить Checkstyle для запуска в Maven.

Ниже приведен фрагмент моего pom.xml. Только checkstyle:checkstyle работает и создает отчеты.

    <profile>
        <id>checkstyle-profile</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.9.1</version>
                    <configuration>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation>
                    </configuration>
                    <executions>
                        <execution>
                            <id>checkstyle-check</id>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <phase>compile</phase>  <!--  Default is "verify" -->
                            <configuration>
                                <violationSeverity>error</violationSeverity>
                                <maxAllowedViolations>7000</maxAllowedViolations>
                                <failOnViolation>true</failOnViolation>
                                <failsOnError>true</failsOnError>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>   
            </plugins>
        </build>
    </profile>

</profiles>

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.9.1</version>
            <configuration>
                <configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <version>2.3</version>
        </plugin>
    </plugins>
</reporting>    

Некоторые из вещей, которые не работают:

  1. configLocation для пользовательского checkstlye игнорируется и всегда по умолчанию устанавливается Sun checkstlye.
  2. Я не могу запустить checkstlye:check, Я становлюсь ниже ошибки. Какую цель я должен выполнить, чтобы checkstyle:check пробеги. Не удалось выполнить цель org.apache.maven.plugins:maven-checkstyle-plugin:2.9.1:check (default-cli) в проекте zzz-web: у вас есть 5950 нарушений Checkstyle
  3. Правильно ли настроен параметр для сбоя сборки, если количество нарушений пересекает 7000?
  4. Отчет Checkstyle не может передать ссылку на код Java из отчета. Например, если я попытаюсь перейти от пакета к классам Java, а затем щелкните номер строки нарушения, это не приведет меня к файлу Java. Возможно, я не настроил плагин jxr правильно.

Надеемся на быстрый ответ.

Заранее спасибо. Варма


5


источник


Ответы:


Вы связаны check цели maven checkstyle plugin в compile фаза. В этом случае вам нужно будет запустить mvn compile для ваших конфигураций, которые будут использоваться. Бег mvn checkstyle:check будут использовать конфигурации по умолчанию. Это похоже на наиболее вероятный случай для пунктов 1 и 2 выше.

Даже если вы должны были бежать mvn compile приведенная выше конфигурация все равно не сработает с учетом двух записей конфигурации failOnViolation а также failOnError поскольку оба они установлены на true, Удаление этих записей и запуск mvn compile должен пройти сборку, пока количество нарушений меньше, чем 7000,


7



googe_checks.xml должен находиться в вашем проекте, где присутствует pom.xml. mvn checkstyle: проверить

<properties>
    <checkstyle.config.location>google_checks.xml</checkstyle.config.location>
    <checkstyle.violationSeverity>warning</checkstyle.violationSeverity>
    <checkstyle.consoleOutput>true</checkstyle.consoleOutput>
</properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>3.0.0</version>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>8.8</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>`
                        <properties>
                            <checkstyle.config.location>google_checks.xml</checkstyle.config.location>
                            <checkstyle.violationSeverity>warning</checkstyle.violationSeverity>
                            <checkstyle.consoleOutput>true</checkstyle.consoleOutput>
                        </properties>

                        <build>
                            <pluginManagement>
                                <plugins>
                                    <plugin>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-checkstyle-plugin</artifactId>
                                        <version>3.0.0</version>
                                        <dependencies>
                                            <dependency>
                                                <groupId>com.puppycrawl.tools</groupId>
                                                <artifactId>checkstyle</artifactId>
                                                <version>8.8</version>
                                            </dependency>
                                        </dependencies>
                                        <executions>
                                            <execution>
                                                <id>validate</id>
                                                <phase>validate</phase>
                                                <goals>
                                                    <goal>check</goal>
                                                </goals>
                                            </execution>
                                        </executions>
                                    </plugin>
                                </plugins>
                            </pluginManagement>
                        </build>
                        </project>
                        `
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
</project>

0



1.configLocation для пользовательского checkstyle игнорируется и всегда используется по умолчанию для контрольной суммы Sun.

Для этого используйте нижеприведенный тег:

<properties<checkstyle.config.location>properties/checkstyle.xml</checkstyle.config.location>  </properties>

в вашем проекте POM.xml проекта, на котором будет использоваться ваша строка checkstyle.this на верхней и нижней метке pom.xml.

<version>0.0.1-SNAPSHOT</version>

0