2011-02-04 2 views
4

Я стараюсь сделать следующее:Resolve PMD в Maven набора правил локально

  1. У меня есть стандартный POM, определенный для всех моих проектов Maven2.
  2. Этот POM содержит инструменты для использования, а также PMD - набор правил для использования.
  3. Я определил свойство, которое имена этих наборов правил каждый.

Дознание, что это работает. Я могу определить новый проект POM, использовать его в качестве родителя для моего стандартного POM и использовать установленные там правила. Я даже могу переопределить определение свойства, которое определяет набор правил другим именем.

Я определил, что, как auth-pmd-rule-set-3.x-v1-5.xml вместо pmd-rule-set-3.x-v1-5.xml (который затем выбран по Maven2) и включили файл auth-pmd-rule-set-3.x-v1-5.xml локально в моем новом проекте (под src/main/resources). Но Мейвен не находит его. Сообщения об ошибках выглядят так:

[DEBUG] Подготовка набора правил: аутентификации-PMD-набор правил-3.x-v1-5.xml

[DEBUG] До: AUTH-PMD-правила -set-3.x-v1-5.xml После: auth-pmd-rule-set-3.x-v1-5.xml

[DEBUG] Ресурс 'auth-pmd-rule-set-3 .x-v1-5.xml 'не был найден с resourceLoader org.codehaus.plexus.resource.loa der.FileResourceLoader.

[DEBUG] Ресурс 'Auth-PMD-набор правил-3.x-v1-5.xml' не был найден с resourceLoader org.codehaus.plexus.resource.loa der.JarResourceLoader.

[DEBUG] Ресурс 'Auth-PMD-набор правил-3.x-v1-5.xml' не был найден с resourceLoader org.codehaus.plexus.resource.loa der.ThreadContextClasspathResourceLoader.

[DEBUG] URLResourceLoader: Исключение при не ищет 'Auth-PMD-набор правил-3.x-v1-5.xml' в '' java.net.MalformedURLException: нет протокола: Аутентификация-PMD-правила -set-3.x-v1-5.xml

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

ответ

4

Основываясь на сообщении об ошибке, похоже, что вы не указали полный путь к своему пользовательскому набору правил auth-pmd-rule-set-3.x-v1-5.xml в своем пом. В соответствии с docs,

Наборы правил могут постоянно находиться в Classpath, файловой системе или в URL. Для наборов правил , которые связаны с инструментом PMD , вам не нужно указывать полный путь к файлу . Он будет разрешен плагином. Но если набор правил является настраиваемым набором правил, вам необходимо указать его абсолютный путь.

+0

Бинго. Это было основным препятствием. Я не уверен, является ли решение лучшим, но он находит теперь (измененный) файл конфигурации и использует только это. Большое спасибо! – mliebelt

Смежные вопросы