如何从 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