Мэйвен 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}
свойство:
может быть полезно для кого-то еще, кто должен найти обходной путь. Кстати, у меня была такая же проблема, и файл предполагается искать в /classes/.xml или папки отсюда. Но поскольку он смотрит непосредственно после папки проекта, я включил
<configuration>
<configLocation>src\main\resources\checkstyle-checker-dev.xml</configLocation>
</configuration>
Примечание: configLocation имеет L caps
также вы можете определить глобальную переменную в окружающей среде и использовать здесь Примечание: это только обходной путь, он должен работать, как указано в приведенных выше строках.