pom.xml
の pluginManagement
について、用途と使用例を書いていきます。
用途
親のプロジェクトでプラグインを定義して、子のプロジェクトに継承させるために使います。
※ 親のプロジェクトでも、定義したプラグインを使用できそうです。
使用例
親の pom.xml
で、次のように書いていきます。
<project> <build> <pluginManagement> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.8</version> </plugin> ... </plugins> </pluginManagement> ... </build> ... </project>
子のプロジェクトは、上のプラグインを定義せずに利用できます。ただし、下のように定義が必要になる場合もあります。
子の pom.xml に定義が必要な場合
親のプラグインに executions
がある場合は、子の pom.xml
にも定義が必要になるみたいです。
親の pom.xml
例えば、以下のようなケースになります。
<project> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>pre-process-classes</id> <phase>compile</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>pre-process</classifier> </configuration> </execution> </executions> </plugin> ... </plugins> </pluginManagement> ... </build> ... </project>
子の pom.xml
親のプラグインについて、groupId
と artifactId
を定義する必要があります。
<project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> </plugin> ... </plugins> ... </build> ... </project>