如何从 POM 中按顺序接受键值对 - Maven
How to accept key-value pairs in order from POM - Maven
我需要从我的 POM 中接受一组键值对,并在我的 Mojo 中使用它们。我想维护用户给出的输入顺序。我的 POM 现在如下所示:
<plugin>
<groupId>...</groupId>
<artifactId>text-replace-plugin</artifactId>
<version>...</version>
<executions>
<execution>
...
<configuration>
<replacements>
<property>
<name>ABCD</name>
<value>XYZ</value>
</property>
<property>
<name>XYZ</name>
<value>PQR</value>
</property>
</replacements>
...
</configuration>
</execution>
</executions>
</plugin>
我接受我的 Mojo 中的 replacements
作为 Java.util 的 Properties
,我认为它实现了地图,因此未被排序。
我试过使用 LinkedHashMap 而不是 Properties,但 mojo 似乎无法理解它。
我也试过如下参数,但是不行:
@Parameter(property = "replacer.replacements", required = true)
private List replacements;
@Parameter(property = "replacer.replacements.property")
private Map eachPair;
这给了我一个错误:加载错误 class 'com.training.replacer.Property'
你能建议我一种方法来实现从 POM.xml 输入的有序键值对吗?谢谢!
我放弃了使用 Java 的属性,并在我的 mojo - List<myClass>
中使用列表变量转换了 POM 的外部 replacements
参数。我通过为键、值对创建自己的 class 并在 POM.xml 中提供源包名称来实现此目的。我只需要保持我的数据成员的名称与 POM 的 属性 名称相同,Maven 将填充对象的数据成员。
参考 - https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Mapping_Complex_Objects
我需要从我的 POM 中接受一组键值对,并在我的 Mojo 中使用它们。我想维护用户给出的输入顺序。我的 POM 现在如下所示:
<plugin>
<groupId>...</groupId>
<artifactId>text-replace-plugin</artifactId>
<version>...</version>
<executions>
<execution>
...
<configuration>
<replacements>
<property>
<name>ABCD</name>
<value>XYZ</value>
</property>
<property>
<name>XYZ</name>
<value>PQR</value>
</property>
</replacements>
...
</configuration>
</execution>
</executions>
</plugin>
我接受我的 Mojo 中的 replacements
作为 Java.util 的 Properties
,我认为它实现了地图,因此未被排序。
我试过使用 LinkedHashMap 而不是 Properties,但 mojo 似乎无法理解它。
我也试过如下参数,但是不行:
@Parameter(property = "replacer.replacements", required = true)
private List replacements;
@Parameter(property = "replacer.replacements.property")
private Map eachPair;
这给了我一个错误:加载错误 class 'com.training.replacer.Property'
你能建议我一种方法来实现从 POM.xml 输入的有序键值对吗?谢谢!
我放弃了使用 Java 的属性,并在我的 mojo - List<myClass>
中使用列表变量转换了 POM 的外部 replacements
参数。我通过为键、值对创建自己的 class 并在 POM.xml 中提供源包名称来实现此目的。我只需要保持我的数据成员的名称与 POM 的 属性 名称相同,Maven 将填充对象的数据成员。
参考 - https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Mapping_Complex_Objects