插件描述符,存储在插件的 jar 工件中的META-INF/maven/plugin.xml中。此描述符通常使用 maven-plugin-plugin从插件源生成。
注意:本文档是从 Modello 模型生成的,但执行的代码不是从这个描述符生成的。如果您发现任何错误,请报告。
<plugin> <name/> <description/> <groupId/> <artifactId/> <version/> <goalPrefix/> <isolatedRealm/> <inheritedByDefault/> <mojos> <mojo> <goal/> <description/> <implementation/> <language/> <phase/> <executePhase/> <executeGoal/> <executeLifecycle/> <requiresDependencyResolution/> <requiresDependencyCollection/> <requiresDirectInvocation/> <requiresProject/> <requiresReports/> <requiresOnline/> <aggregator/> <inheritedByDefault/> <threadSafe/> <instantiationStrategy/> <executionStrategy/> <since/> <deprecated/> <configurator/> <composer/> <parameters> <parameter> <name/> <alias/> <type/> <required/> <editable/> <implementation/> <description/> <since/> <deprecated/> </parameter> </parameters> <configuration> <paramName implementation=.. default-value=.. /> </configuration> <requirements> <requirement> <role/> <role-hint/> <field-name/> </requirement> </requirements> </mojo> </mojos> <dependencies> <dependency> <groupId/> <artifactId/> <version/> <type/> </dependency> </dependencies> </plugin>
plugin.xml文件的根元素。
元素 | 类型 | 描述 |
---|---|---|
姓名 | 细绳 | 插件的名称。 |
描述 | 细绳 | 插件说明。 |
组 ID | 细绳 | 插件的组 ID。 |
工件 ID | 细绳 | 插件的工件 ID。 |
版本 | 细绳 | 插件的版本。 |
目标前缀 | 细绳 | |
隔离领域 | 布尔值 | 默认值为:false。 |
默认继承 | 布尔值 | 默认值为:true。 |
魔力/魔力* | 列表<MojoDescriptor> | (许多)插件提供的每个 Mojo 的描述。 |
依赖/依赖* | 列表<依赖> | (许多) 插件运行所需的一组依赖项。这使插件能够独立于其 POM 运行(或至少声明它需要运行的库)。 |
Mojo 描述。
元素 | 类型 | 描述 |
---|---|---|
目标 | 细绳 | Mojo 的目标名称,用户将从命令行引用该名称以直接执行 Mojo,或在 POM 中引用该名称以提供特定于 Mojo 的配置。 |
描述 | 细绳 | 此 Mojo 功能的描述。 |
执行 | 细绳 | Mojo 的完全限定类名(或非 Java Mojos 的脚本路径)。 |
语言 | 细绳 | 这个 Mojo 的实现语言(java、beanshell 等)。 默认值为:java。 |
阶段 | 细绳 | 如果用户未在 POM 中显式设置阶段,则定义将 mojo 执行绑定到的默认阶段。 注意:当插件声明添加到 POM 时,这不会自动运行 mojo。它只是使用户能够从周围的<execution>元素中省略<phase>元素。 |
执行阶段 | 细绳 | 参考 Mojo 的调用阶段。 |
执行目标 | 细绳 | 引用 Mojo 的调用目标。 |
执行生命周期 | 细绳 | |
requiresDependencyResolution | 细绳 |
将此 Mojo 标记为需要在执行之前解析指定类路径中的依赖项:compile、runtime、test、
compile+runtime(从 Maven 3.0 开始)或runtime+system(从 Maven 3.0 开始)
默认值为:runtime。 |
需要依赖集合 | 细绳 | 将此 mojo 标记为需要有关构成指定类路径的依赖项的信息。顾名思义,这类似于 requiresDependencyResolution 并支持相同的值。重要的区别是这不会解析依赖项的文件,即与 Maven 项目关联的工件可能缺少文件。因此,此注释适用于只想分析传递依赖项集的 mojo,特别是在早期生命周期阶段,由于尚未构建的项目,完全依赖项解析可能会失败。 |
需要直接调用 | 布尔值 | 将此 Mojo 标记为仅直接调用。 默认值为:false。 |
需要项目 | 布尔值 | 将此 Mojo 标记为需要在项目内部运行。 默认值为:true。 |
需要报告 | 布尔值 | 将此 Mojo 标记为需要在报告上下文中运行。自 Maven 3.0 起不受支持。 默认值为:false。 |
需要在线 | 布尔值 | 将此 Mojo 标记为需要在线模式才能运行。 默认值为:false。 |
聚合器 | 布尔值 |
标记此 Mojo 以以多模块方式运行它,即将构建与列为模块的项目集聚合。
默认值为:false。 |
默认继承 | 布尔值 | 指定 Mojo 是继承的。 默认值为:true。 |
线程安全 | 布尔值 |
将此 mojo 标记为线程安全的,即 mojo 在并行构建期间安全地支持并发执行。在并行构建会话期间使用没有此注释的 Mojos 将使 Maven 输出警告。从 Maven 3.0.
默认值为:false。 |
实例化策略 | 细绳 | 指定实例化策略。 默认值为:每次查找。 |
执行策略 | 细绳 |
指定执行策略:每次会话一次,总是。
默认值为:每会话一次。 |
自从 | 细绳 | 指定将 Mojo 添加到 API 时的版本。此后类似于 Javadoc。 |
已弃用 | 细绳 | 指定 API 弃用 Mojo 时的版本。类似于已弃用的 Javadoc。当用户尝试配置标记为已弃用的参数时,这将触发警告。 |
配置器 | 细绳 | 将参数值注入此 Mojo 时使用的配置器类型。该值通常从 Mojo 的实现语言推导出来,但可以指定为允许使用自定义 ComponentConfigurator 实现。 |
作曲家 | 细绳 | |
参数/参数* | 列表<参数> | (许多) |
配置/参数名称* | 列表<配置> | (许多) |
要求/要求* | 列表<需求> | (许多) |
相位映射定义。
元素 | 类型 | 描述 |
---|---|---|
姓名 | 细绳 | 参数的名称,在从 Mojo 声明的默认值或 POM 配置此参数时使用。 |
别名 | 细绳 | 指定可用于从 POM 配置此参数的别名。这主要有助于提高用户友好性,因为 Mojo 字段名称对用户来说不直观,或者不利于通过 POM 进行配置。 |
类型 | 细绳 | 此参数的 Java 类型。这用于验证用于计算应为该参数注入 Mojo 的值的任何表达式的结果。 |
必需的 | 布尔值 |
Mojo 运行是否需要此参数。这用于在注入之前验证 Mojo 的配置,以及在从某个半状态执行 Mojo 之前。
默认值为:false。 |
可编辑 | 布尔值 |
指定此参数可以由用户直接配置(如 POM 指定配置的情况)。当您想要强制用户使用通用 POM 元素而不是插件配置时,这很有用,例如您想要使用工件的最终名称作为参数的情况。在这种情况下,您希望用户修改<build><finalName/></build>而不是直接在插件配置部分中指定 finalName 的值。确保 - 例如 - 需要 Artifact 类型的项目的 List 类型的参数不会得到一个满是字符串的 List 也是有用的。
默认值为:true。 |
执行 | 细绳 | |
描述 | 细绳 | 该参数在 Mojo 中的使用说明。 |
自从 | 细绳 | 指定将参数添加到 API 时的版本。此后类似于 Javadoc。 |
已弃用 | 细绳 | 指定 API 弃用参数时的版本。类似于已弃用的 Javadoc。当用户尝试配置标记为已弃用的参数时,这将触发警告。 |