是否可以在Maven插件的配置块中使用XML属性?

时间:2012-01-05 14:34:01

标签: maven maven-plugin

我想开发一个Maven插件,并且作为其配置的一部分(将映射到mojo字段),我想在几个标签上提供XML属性。不幸的是,official guide没有提到在配置块中使用属性(这可能或不可能意味着它根本不可能。)

我想要的是:

<plugin>
  <configuration>
    <my_option attr="x" /> <!-- is this possible? -->
  </configuration>
</plugin>

这有可能吗?如果是这样,这将如何映射到我的mojo中的字段?

2 个答案:

答案 0 :(得分:2)

不。 Maven不支持属性。但是,您可以使用字符串映射等。例如,看看编译器插件如何编译compilerArguments或者Android Maven插件(你正在使用它)如何在dex mojo配置中执行jvmArguments。

答案 1 :(得分:1)

我知道我迟到了,但我认为答案是不同的。毕竟,Maven antrun plugin的工作方式与OP想要的完全一致;看看target可以提供您在ant构建文件中可以使用的任何XML的方式。

通过声明类型为PlexusConfiguration的参数在mojo中完成, 见around lines 164-171

PlexusConfiguration不会扩展任何知名的XML API,例如DOM,它似乎不支持命名空间,PI等,但它具有基本的getChildren / {{1}你想要的大多数用途的方法都是/ getAttributeNames

是否还有一种方法以newer JSR-330 (non-Plexus)方式进行,我不知道,但就Plexus API而言,文档确实说“这些API将永远得到支持,或者至少直到Maven完全放弃Maven 2支持。“