【问题标题】:How to accept key-value pairs in order from POM - Maven如何从 POM 中按顺序接受键值对 - Maven
【发布时间】:2016-03-24 17:06:11
【问题描述】:

我需要从我的 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,我认为它实现了 Maps,因此没有排序。

我尝试使用 LinkedHashMap 而不是 Properties,但 mojo 似乎无法理解它。

我也尝试了以下参数,但不起作用:

  @Parameter(property = "replacer.replacements", required = true)
  private List replacements;

  @Parameter(property = "replacer.replacements.property")
  private Map eachPair;

这给了我一个错误:加载类“com.training.replacer.Property”时出错

您能否建议我一种方法来实现从 POM.xml 输入的有序键值对?谢谢!

【问题讨论】:

    标签: java maven collections maven-2 maven-3


    【解决方案1】:

    我放弃了使用 Java 的属性,并将我的 POM 的外部 replacements 参数转换为我的 mojo 中的列表变量 - List&lt;myClass&gt;。我通过为键、值对创建自己的类并在 POM.xml 中提供源包名称来实现这一点。我只需要保持我的数据成员的名称与 POM 的属性名称相同,Maven 将填充对象的数据成员。

    参考 - https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Mapping_Complex_Objects

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      相关资源
      最近更新 更多