плагин maven eclipse checkstyle - PullRequest
       44

плагин maven eclipse checkstyle

5 голосов
/ 20 октября 2010

У меня есть пользовательский файл проверок checkstyle (называемый check.xml), и я пытаюсь использовать один и тот же файл в maven и eclipse. Все работает хорошо, кроме SuppressionFilter.

В этом файле check.xml у меня есть

<module name="SuppressionFilter">
    <property name="file" value="src/main/resources/checkstyle/checkstyle-suppressions.xml"/>    
</module>

Это работает, когда я бегу через мавена. Однако, когда я запускаю eclipse, мне нужно изменить конфигурацию на

<module name="SuppressionFilter">
    <property name="file" value="${basedir}/src/main/resources/checkstyle/checkstyle-suppressions.xml"/>    
</module>

Если я запускаю со свойством $ {basedir} вместе с maven, я получаю ошибку, что свойство $ {basedir} не было установлено.

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

спасибо, Джефф

Ответы [ 4 ]

5 голосов
/ 19 декабря 2010

Конечно, есть способ использовать один и тот же файл конфигурации как в maven, так и в eclipse, но сначала он требует небольшой настройки. Я написал сообщение в блоге о том, как этого добиться даже для многомодульного проекта Maven. см .: maven-checkstyle-and-eclipse

4 голосов
/ 24 мая 2012

Это ад.Eclipse и Maven обрабатывают подавления по-разному и не имеют общих переменных.Происходит от Рольф Энгельхард

Итак, в pom.xml:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-checkstyle-plugin</artifactId>
   <version>2.8</version>
   <configuration>
     <propertyExpansion>config_loc=${basedir}/src/main/checkstyle</propertyExpansion>
     <configLocation>${basedir}/src/main/checkstyle/checkstyle.xml</configLocation>
      <suppressionsLocation>${basedir}/src/main/checkstyle/suppressions.xml</suppressionsLocation>
     <includeTestSourceDirectory>true</includeTestSourceDirectory>
   </configuration>
   <executions>
     <execution>
       <phase>verify</phase>
       <goals>
         <goal>check</goal>
       </goals>
     </execution>
   </executions>
 </plugin>

Теперь в checkstyle.xml ($ {config_log} - специфическая вещь для Eclipse, но с указаниемв pom мы делаем его доступным и для maven):

<module name="SuppressionFilter">
  <property name="file" value="${config_loc}/suppressions.xml" />
</module>

И если вы используете maven-site-plugin или любые другие плагины, которые также используют CheckStyle, не забудьте обновить те, чтобы иметьсвойство config_loc (или объявить его глобальным для pom, хотя я не смог заставить его работать должным образом).

1 голос
/ 14 ноября 2015

<propertyExpansion>basedir=${session.executionRootDirectory}</propertyExpansion> работает для меня, но только при добавлении к узлу <plugin>, а не к <execution>!

project.basedir не работает хорошо в многомодульных проектах, потому что он будет указывать на папку субмодуля вместо корневой папки.

0 голосов
/ 21 октября 2010

Вы можете попытаться определить ${basedir} как свойство в вашем pom.
См. Краткий обзор pom .

<property>
          <name>basedir</name>
          <value>${project.basedir}</value>
</property>
...