2014-02-19 1 views
0

У меня есть большой проект модуля JEE Maven Multi, а также общий набор правил и запретов для Checkstyle с помощью модуля инструментов сборки. Из-за тестирования этого же модуля очень сложно опубликовать стабильную версию этих средств сборки.Checkstyle - результат не детерминированной проверки

Каждый раз, когда я запускаю фазу Maven, я получаю другой результат выполнения.

Это Checkstyle конфигурации в родительском pom.xml:

<build>  
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>${checkstyle.plugin.version}</version> 
     <configuration> 
      <skip>${skipQATests}</skip> 
      <configLocation>qa/checkstyle_rules.xml</configLocation> 
      <propertiesLocation>${checkstyleDir}/checkstyle.properties</propertiesLocation> 
      <suppressionsLocation>qa/suppressions.xml</suppressionsLocation> 
      <encoding>UTF-8</encoding> 
      <consoleOutput>true</consoleOutput> 
      <failsOnError>true</failsOnError> 
      <failOnViolation>true</failOnViolation> 
      <linkXRef>false</linkXRef> 
     </configuration> 
     <executions> 
      <execution> 
      <id>checkstyle-compile</id> 
      <phase>compile</phase>      
      <goals> 
      <goal>check</goal> 
      </goals> 
      </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Я пытаюсь найти шаблон в расстрелах, проект тщетны в одной конкретной проверки, и я не могу найти «ошибка» ,

  1. Я выполняю компиляцию фазы maven (mvn clean compile), и она терпит неудачу при данной проверке.
  2. Я выполняю фазу фаз maven (mvn clean package), и он тоже не работает.
  3. исполняю снова компилировать фазу (МВН чистой компиляции), и это не обязательно (все SUCCESS)
  4. я исполняю снова упаковать и он не
  5. Он не терпит неудачу в течение нескольких прогонов, а затем он снова не удастся при некотором разном исполнении

Я знаю, что такое поведение сложно отследить без всякой информации о проекте. Но есть ли какая-то процедура, журнал, инструмент, который даст больше информации об отладке этой проблемы, чтобы я мог определить, является ли это ошибкой или какой-то неправильной конфигурацией?

Спасибо заранее!

UPDATE:

Я только выполнил ту же команду МВН дважды на вспомогательном модуле я тестирование Checkstyle (тест, вызвавший нарушение правил) - mvn checkstyle:check -X

Результат отличался от каждого другие, основные отличия заключаются в том, что ПРАВИЛЬНОЕ ИСПОЛНЕНИЕ (тот, который не выполняет сборку, не находит файлы с первой попытки) и НЕПРАВИЛЬНОЕ ИСПОЛНЕНИЕ (тот, который заканчивается в SUCCESS, находит файлы конфигурации с первой попытки)

EXEC_1: ...

[DEBUG] The resource 'qa/suppressions.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.FileResourceLoader.  
[DEBUG] The resource 'qa/suppressions.xml' was found as jar:file:/C:/Users/usuario/.m2/repository/com/company/tools/build-tools/0.0.2-SNAPSHOT/build-tools-0.0.2-SNAPSHOT.jar!/qa/suppressions.xml.  
[DEBUG] Adding the outputDirectory file:/C:/LAB/PRJ/prj-ejbws/target/classes/ to the Checkstyle class path  
[DEBUG] The resource 'qa/checkstyle_N4_JEE.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.FileResourceLoader.  
[DEBUG] The resource 'qa/checkstyle_N4_JEE.xml' was found as jar:file:/C:/Users/usuario/.m2/repository/com/company/tools/build-tools/0.0.2-SNAPSHOT/build-tools-0.0.2-SNAPSHOT.jar!/qa/checkstyle_JEE.xml.  
[DEBUG] The resource 'ubic.properties' was found as C:\LAB\PRJ\ubic.properties. 

[INFO] Starting audit...  
[INFO] -------------------------------------------- 
[INFO] BUILD FAILURE 
[INFO] -------------------------------------------- 
[INFO] Total time: 1.542s 
[INFO] Finished at: Thu Feb 20 16:35:22 CET 2014 
[INFO] Final Memory: 8M/20M 
[INFO] -------------------------------------------- 

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.11:check (default-cli) on project GestionDelContacto-opsa-ejbws: Failed during checkstyle execution: There are 2 checkstyle errors. 

EXEC_2: ...

[DEBUG] The resource 'qa/suppressions.xml' was found as jar:file:/C:/Users/usuario/.m2/repository/com/company/tools/build-tools/0.0.2-SNAPSHOT/build-tools-0.0.2-SNAPSHOT.jar!/qa/suppressions.xml.  
[DEBUG] Adding the outputDirectory file:/C:/LAB/PRJ/prj-ejbws/target/classes/ to the Checkstyle class path  
[DEBUG] The resource 'qa/checkstyle_N4_JEE.xml' was found as jar:file:/C:/Users/usuario/.m2/repository/com/company/tools/build-tools/0.0.2-SNAPSHOT/build-tools-0.0.2-SNAPSHOT.jar!/qa/checkstyle_JEE.xml.  
[DEBUG] The resource 'ubic.properties' was not found with resourceLoader org.codehaus.plexus.resource.loader.ThreadContextClasspathResourceLoader.  
[DEBUG] The resource 'ubic.properties' was not found with resourceLoader org.codehaus.plexus.resource.loader.JarResourceLoader.  
[DEBUG] The resource 'ubic.properties' was found as C:\LAB\PRJ\ubic.properties. 

[INFO] Starting audit... 

[INFO] -------------------------------------------- 
[INFO] BUILD SUCCESS 
[INFO] -------------------------------------------- 
[INFO] Total time: 1.570s 
[INFO] Finished at: Thu Feb 20 16:37:05 CET 2014 
[INFO] Final Memory: 8M/20M 
[INFO] --------------------------------------------- 

любой ключ?

+0

Что означает отказ? Вы получили сообщение об ошибке? Вы пытались запустить maven с параметрами -X -e, чтобы получить более подробный вывод? – shylynx

+0

Когда я говорю об ошибке, я имею в виду: Checkstyle обнаруживает нарушение правила и разбивает сборку. Я изучаю эту проблему через все утро и нашел следующее: - загрузчик ресурсов Plexus - это тот, который на некоторых mvn-исполнениях не загружает файл свойств для checkstyle, используя propertiesLocation tag в конфигурации плагина, поэтому при запуске checkstyle не имеет свойств, загруженных, чтобы сделать свойствоExpansion на моем нелегальном контроле. – xOUe

+0

Вы пробовали фиксированные значения для пути местоположения вместо переменных в POM? Вы также должны проверить, правильно ли установлены переменные в проекте. Особенно многомодульные проекты, как правило, сталкиваются с проблемами, если переменные наследуются между подпроектами. – shylynx

ответ

0

Остановить использование Maven, запустить CheckStyle отдельно. У вас уже достаточно «подсказок»: иногда Maven корректно инициализирует CheckStyle, иногда нет, и в зависимости от ненадежной инфраструктуры это плохая идея.

+0

Спасибо за совет Лоренцо, но, к сожалению, это не вариант ... – xOUe