2012-06-19 7 views
5

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

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

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

======

<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: проверьте. Я становлюсь ниже ошибки. Какую цель я должен выполнить, чтобы 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 правильно.

В ожидании быстрого ответа.

Заранее спасибо. Varma

ответ

7

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

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

+0

Thanks Raghuram! Ценю вашу помощь. – AVarma

+2

@AVarma.Конечно, вы можете захотеть и/или [принять ответ] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), чтобы он помогал другим в будущем. – Raghuram

+0

проблема/улучшение сообщается - https://issues.apache.org/jira/browse/MCHECKSTYLE-314 –

0

1.configЗамещение для пользовательского checkstlye игнорируется и всегда по умолчанию устанавливается Sun checkstlye.

Для этого используйте тег ниже:>

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

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

<version>0.0.1-SNAPSHOT</version>