すべてのサブモジュールで同じpmd構成を共有しようとしています。私はそれを達成するための最良の方法を探しています
checkstyleプラグインの場合と同じように、親プロジェクトに配置できると思いました。
親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>
マルチモジュール構造
ここに私の構造
parent
|-- src
| `-- main
| `-- resources
| |-- pmd.xml
| `-- checkstyle.xml
|-- pom.xml
|-- model
| `-- pom.xml
`-- webapp
`-- pom.xml
エラー
この構成では、次のエラーのみが発生します。
[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]
解決策1
サブモジュールにはレベルが1つしかないため、このソリューションを試してみました。しかし、近い将来、レベルが増える可能性があるため、それがメソッド$ {basedir}/../src/mainであるとは確信していません。 /resources/pmd.xml
解決策2
すべてのソリューションを作成しなくても、アセンブリを使用して構成を圧縮し、すべてのサブモジュールで依存関係として使用できます。これはどのレベルでも機能しますが、これはやり過ぎです!
ここにそれを説明するリンクがあります:戦争から別のMavenプロジェクトにリソースを含める方法
だから私はMavenのトリックを探していますが、私は何をどのように行うのかわかりません!すべてのアドバイス/手がかりは大歓迎です。