Локальное разрешение наборов правил pmd в Maven - PullRequest
4 голосов
/ 04 февраля 2011

Я пытаюсь сделать следующее:

  1. У меня есть стандартное POM, определенное для всех моих проектов Maven2.
  2. Это POM включает в себя инструменты для использования, а для PMD наборы правил дляuse.
  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).Но Maven не находит его.Сообщения об ошибках выглядят так:

[DEBUG] Подготовка набора правил: auth-pmd-rule-set-3.x-v1-5.xml

[DEBUG] До:auth-pmd-rule-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-rule-set-3.x-v1-5.xml 'не найден с resourceLoader org.codehaus.plexus.resource.loa der.JarResourceLoader.

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

[DEBUG] URLResourceLoader: исключение при поиске' auth-pmd-rule-set-3.x-v1-5.xml 'at' 'java.net.MalformedURLException: нет протокола: auth-pmd-rule-set-3.x-v1-5.xml

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

1 Ответ

4 голосов
/ 05 февраля 2011

Судя по сообщению об ошибке, вы, возможно, не указали полный путь к своему пользовательскому набору правил auth-pmd-rule-set-3.x-v1-5.xml в вашей поме.Согласно документам ,

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

...