Maven中plugins和pluginManagement的區別
阿新 • • 發佈:2017-12-20
gem 定義 compile bsp 就是 你在 nag 綁定 exec 主要是為了統一管理插件,確保所有子POM使用的插件版本保持一致,類似dependencies和dependencyManagement。
pluginManagement是表示插件聲明,即你在項目中的pluginManagement下聲明了插件,Maven不會加載該插件,pluginManagement聲明可以被繼承。
pluginManagement一般是用來在父POM中定義,提供給子POM使用,子POM也可以覆蓋這個定義,而且你在父POM中定義了版本之後,子模塊中直接應用groupId和artifactId,而不用指定版本,同時也方便統一管理;而在父POM中的pluginManagement並不會介入到Maven的生命周期。
plugins就是直接引入一個plugin,而且可以綁定到Maven相關的生命周期上。
pluginManagement
例子:
父POM
<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1</version> <configuration> <attach>true</attach> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement>
子POM
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> </plugin> </plugins>
Maven中plugins和pluginManagement的區別