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łówTutaj moja struktura
parent
|-- src
| `-- main
| `-- resources
| |-- pmd.xml
| `-- checkstyle.xml
|-- pom.xml
|-- model
| `-- pom.xml
`-- webapp
`-- pom.xml
BłądW 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 1Pró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 2Nie 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.