Разрешить наборы правил 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). Но Maven его не находит. Сообщения об ошибках выглядят так:

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

[ОТЛАДКА] До: 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.load der.FileResourceLoader.

[ОТЛАДКА] Ресурс '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' в '' java.net.MalformedURLException: нет протокола: auth-pmd-rule-set-3. х-v1-5.xml

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


person mliebelt    schedule 04.02.2011    source источник


Ответы (1)


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

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

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