Я использую плагин checkstyle в maven 2. Теперь я хочу переключить свой файл конфигурации с используемого по умолчанию на а) онлайн-файл или б) локальный файл. Я попробовал следующие две вещи, но обе не сработали. Какие-либо предложения?
A) Локальный файл, который находится прямо в папке моего проекта рядом с pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>checkstyle.xml</configLocation>
</configuration>
</plugin>
Б) Удаленный файл, который хранится на сервере
<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>
Оба случая приводят к такой ошибке:
[ИНФОРМАЦИЯ] При создании отчета Checkstyle произошла ошибка. Встроенная ошибка: сбой при выполнении стиля проверки. Не удалось найти файл ресурса: checkstyle.xml.
Любая помощь была бы признательна!
3 ответа
Я видел несколько проблем, связанных с configLocation
в Jira с версией 2.5 плагин (например, MCHECKSTYLE-129 или MCHECKSTYLE-131), а) и б) отлично работают с версией 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 заглавных букв.
Также вы можете определить глобальную переменную в среде и использовать здесь. Примечание. Это только обходной путь, он должен работать, как указано в приведенных выше строках.
Похожие вопросы
Связанные вопросы
Новые вопросы
maven-2
Apache Maven - это инструмент управления и понимания программного обеспечения. Это тег для вопросов, связанных с Maven, которые относятся к Maven версии 2.x.