我想开发一个Maven插件,并且作为其配置的一部分(将映射到mojo字段),我想在几个标签上提供XML属性。不幸的是,official guide没有提到在配置块中使用属性(这可能或不可能意味着它根本不可能。)
我想要的是:
<plugin>
<configuration>
<my_option attr="x" /> <!-- is this possible? -->
</configuration>
</plugin>
这有可能吗?如果是这样,这将如何映射到我的mojo中的字段?
答案 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支持。“