Maven中的扩展和插件之间的功能区别是什么?
以下示例摘自此处,其中提供了简要概述,但没有很好地解释差异.
扩展示例:
<project>
...
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>2.10</version>
</extension>
</extensions>
</build>
...
</project>
Run Code Online (Sandbox Code Playgroud)
插件示例:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
...
</configuration>
</plugin>
</plugins>
</build>
...
</project>
Run Code Online (Sandbox Code Playgroud)
扩展是要在此构建中使用的工件列表.它们将包含在正在运行的构建的类路径中.它们可以启用构建过程的扩展(例如为Wagon传输机制添加ftp提供程序),以及使插件处于活动状态,从而对构建生命周期进行更改.简而言之,扩展是在构建期间激活的工件.扩展不必实际执行任何操作,也不必包含Mojo.出于这个原因,扩展非常适合指定常见插件接口的多个实现中的一个.
以上通常是调用构建扩展,通常org.apache.maven.AbstractMavenLifecycleParticipant用于特定用途.
一个定义的插件
<extension>true</extension>
Run Code Online (Sandbox Code Playgroud)
通常会定义它自己的生命周期或包装类型,如maven-bundle-plugin,这样可以定义<packaging>bundle</packaging>或Maven Tycho定义包装类型:<packaging>eclipse-plugin</packaging>.
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |