Teilen Sie bestimmte PMD-Regelsätze in einem Multi-Modul-Maven-Projekt
Ich versuche, die gleiche PMD-Konfiguration für alle meine Submodule zu verwenden. Ich suche nach dem besten Weg, das zu erreichen
Ich dachte, ich könnte es in das übergeordnete Projekt einfügen, so wie ich es für das Checkstyle-Plugin getan habe
Übergeordnete 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>
Multi-Modul-StrukturHier meine Struktur
parent
|-- src
| `-- main
| `-- resources
| |-- pmd.xml
| `-- checkstyle.xml
|-- pom.xml
|-- model
| `-- pom.xml
`-- webapp
`-- pom.xml
ErrorMit dieser Konfiguration erhalte ich nur den folgenden Fehler:
[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]
Lösung 1Ich habe diese Lösung ausprobiert, die für mich funktioniert, da ich nur eine Ebene für Submodule habe: Aber in naher Zukunft kann es sein, dass ich mehr Ebenen habe, daher bin ich nicht überzeugt, dass dies DIE Methode $ {basedir} /../ src / main ist /resources/pmd.xml
Lösung 2Ohne die gesamte Lösung zu schreiben, kann ich mithilfe einer Assembly meine Konfiguration komprimieren und in allen meinen Submodulen als Abhängigkeit verwenden. Dies würde für jedes Level funktionieren, aber das ist übertrieben!
Hier ein Link, der es erklären würde:Wie man Ressourcen aus dem Krieg in ein anderes Maven-Projekt einbindet
Also suche ich nach einem Maven-Trick, aber ich weiß nicht was oder wie! Jeder Rat / Hinweis ist willkommen.