Udostępniaj określone zestawy reguł PMD w ramach wielo-modułowego projektu maven

Próbuję współdzielić tę samą konfigurację pmd we wszystkich moich podmodułach. Szukam najlepszego sposobu, aby to osiągnąć

Pomyślałem, że mogę umieścić go w projekcie nadrzędnym, tak jak zrobiłem to dla wtyczki checkstyle

Rodzinny pom.xml
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.9.1</version>
            <configuration>
                 <configLocation>/src/main/config/checkstyle.xml</configLocation>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>2.7.1</version>
            <configuration>
                <rulesets>
                    <ruleset>pmd.xml</ruleset>
                </rulesets>
                <linkXref>true</linkXref>
                <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
                <targetJdk>${maven.compiler.target}</targetJdk>
            </configuration>
        </plugin>
    </plugins>
</build>
Struktura wielu modułów

Tutaj moja struktura

parent
|-- src
|   `-- main
|       `-- resources
|           |-- pmd.xml
|           `-- checkstyle.xml
|-- pom.xml
|-- model
|   `-- pom.xml
`-- webapp
    `-- pom.xml
Błąd

W tej konfiguracji otrzymuję tylko następujący błąd:

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:2.7.1:pmd (default-cli) on project model: An error has occurred in PMD Report report generation. Could not find resource 'pmd.xml'. -> [Help 1]
Rozwiązanie 1

Próbowałem tego rozwiązania, które działa dla mnie, ponieważ mam tylko jeden poziom na submodulach: Ale w niedalekiej przyszłości mogę mieć więcej poziomów, więc nie jestem przekonany, że to jest metoda $ {basedir} /../ src / main /resources/pmd.xml

Rozwiązanie 2

Nie pisząc całego rozwiązania, mogę użyć zestawu do skompresowania mojej konfiguracji i użycia jej w całym podmodule jako zależności. To działałoby na każdym poziomie, ale to jest przesada!

Oto link, który by to wyjaśnił:Jak włączyć zasoby z wojny do innego projektu maven

Więc szukam sztuczki Maven, ale nie wiem co lub jak! Każda rada / wskazówka jest mile widziana.

questionAnswers(2)

yourAnswerToTheQuestion