Мэйвен 2 плагин checkstyle версия 2.5 - проблемы с configLocation

Я использую плагин checkstyle в maven 2. Теперь я хочу переключить файл конфигурации с файла по умолчанию на A) онлайн-файл или b) локальный файл. Я попробовал следующие две вещи, которые оба не сработали. Есть предложения?

A) локальный файл, который находится непосредственно в моей папке проекта рядом с pom.в XML

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <configuration>
        <configLocation>checkstyle.xml</configLocation>
    </configuration>
</plugin>

B) удаленный файл, который хранится на сервере

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <configuration>
        <configLocation>http://stud.hs-heilbronn.de/~nischmid/development/checkstyle-config.xml</configLocation>
    </configuration>
</plugin>

оба случая приводят к такой ошибке:

[INFO] An ошибка Создание отчета Checkstyle. Встроенный ошибка: ошибка во время checkstyle выполнение не удалось найти ресурс файл:checkstyle.формате XML'.

любая помощь будет оценили!

3 ответов


Я видел несколько вопросов, связанных с configLocation на Джира С версией 2.5 плагина (например,MCHECKSTYLE-129 или MCHECKSTYLE-131), оба a) и b) просто отлично работают с версией 2.4.

Итак, если вы не используете Maven 3, я предлагаю откат к 2.4 на данный момент:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <configLocation>checkstyle.xml</configLocation>
  </configuration>
</plugins>

или

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <configLocation>http://stud.hs-heilbronn.de/~nischmid/development/checkstyle-config.xml</configLocation>
  </configuration>
</plugin>

в качестве примечания, для сборки нескольких модулей, посмотрите на многомодульный Конфигурация.


я пытался использовать версию 3.0.1 плагина Checkstyle и нашел configLocation не имеет никакого эффекта. Попробовал подход выше, но все равно не повезло.

чтобы суммировать, ответ выше, вероятно, работает, но вам может потребоваться установить свойство checkstyle.config.location.

используя -X чтобы получить отладочный вывод, я увидел:

[DEBUG]   (f) configLocation = config/sun_checks.xml

прокрутка назад в журнале, это выглядит как configLocation не установлен:

<configLocation default-value="config/sun_checks.xml">${checkstyle.config.location}</configLocation>

основываясь на этом сообщении, я установил свойство в глобальном <properties> следующим образом:

<checkstyle.config.location>${basedir}/config/checkstyle-configuration.xml</checkstyle.config.location>

это сработало,но вызвало плагин для создания исключения. После некоторого поиска в Google я добавил в файл конфигурации checkstyle следующее:

<module name="Checker">
  ...
  <module name="TreeWalker">
    ...
    <property name="cacheFile" value=""/>

для полноты, последний шаг пришел от следующего Jira, отмеченный как разрешенный в 2.8. Разница в том, что он работает с пустым значением, избегая необходимости настраивать ${cachefile} свойство:

http://jira.codehaus.org/browse/MCHECKSTYLE-159


может быть полезно для кого-то еще, кто должен найти обходной путь. Кстати, у меня была такая же проблема, и файл предполагается искать в /classes/.xml или папки отсюда. Но поскольку он смотрит непосредственно после папки проекта, я включил

<configuration>
<configLocation>src\main\resources\checkstyle-checker-dev.xml</configLocation>
</configuration>

Примечание: configLocation имеет L caps

также вы можете определить глобальную переменную в окружающей среде и использовать здесь Примечание: это только обходной путь, он должен работать, как указано в приведенных выше строках.