Tôi đang sử dụng yếu tố pluginManagement
trong bố mẹ pom.xml
để định cấu hình plugin cho tất cả các con của nó. Ví dụ, tôi có cấu hình như sau:Maven pluginQuản lý cấu hình thừa kế hành vi lạ
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-artifacts</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>some/where/else</outputDirectory>
<resources>
<resource>
<directory>some/another/resource</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>deps/dir</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</pluginManagement>
Các tài liệu chính thức khẳng định rằng một plugin cấu hình trong pluginManagement
vẫn phải được thêm vào plugins
yếu tố ở trẻ em poms. Thật vậy, nếu tôi loại bỏ điều này từ pom con:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
sau đó maven-dependency-plugin
dừng bắn ở install
pha. Tuy nhiên, có vẻ như nó không ảnh hưởng đến một số plugin khác, cụ thể là, maven-resource-plugin
. Ngay cả khi tôi không có
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
trong pom con tôi, mục tiêu copy-resources
nó vẫn bắn ở install
giai đoạn và thực hiện các công việc nó được cấu hình để làm.
Tại sao hành vi này có mặt? Có danh sách các plugin được thừa kế luôn hay không, hoặc có thể tôi đang thiếu thứ gì đó?
Hãy nhìn vào pom hiệu quả để phân tích vấn đề của bạn (thông qua trợ giúp mvn: hiệu quả-pom). – khmarbaise
Cảm ơn bạn, hoàn toàn quên mất nó. Sẽ có một cái nhìn. –