3、configuration配置的获取---多值参数类型

本文介绍了Maven Mojo中不同类型的配置参数,包括数组、list、map、Properties、自定义对象和使用setters方法的情况。详细说明了如何在POM中配置这些参数,以及XML元素如何转换为恰当的对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面介绍可以在Mojo中作为参数使用的各种复合对象,及它们在POM中的解释规则。一般来说,保存参数值(和参数值中的元素)的对象的类型是按以下步骤决定的(确定有效类型的第一步):

  • 1. 如果XML元素包含implementation属性,就使用它
  • 2. 如果XML标签包含”.”,尝试解析为类的全名
  • 3. 尝试将XML标签(首字母大写)解析为Mojo所在包中的类
  • 4. 对数组,使用数组的元素类型(例如,对String[]参数使用String类型);对集合和映射,使用Mojo配置中指定的类;使用String作为集合类型的entry和map的值的类型。

一旦元素的类型确定了,xml中的文本将被转换为恰当的对象。

1、数组

数组参数通过多次指定来配置,例如:

/**
    * My Array.
    */
   @Parameter
   private String[] myArray;


<myArray>
  <param>value1</param>
  <param>value2</param>
</myArray>

2、list类型

这一类包含所有实现java.util.Collection的类,如ArrayList或HashSet。这些参数也像数组一样通过多次指定来配置,例如:

/**
    * My List.
    */
   @Parameter
   private List myList;

<myList>
  <param>value1</param>
  <param>value2</param>
</myList>

3、map类型

这一类包含所有实现java.util.Map而未实现java.util.Properties的类,如HashMap。这些参数通过包含XML标签来配置,形如<key>value</key>,例如:

/**
  * My Map.
  */
 @Parameter
 private Map myMap;

<myMap>
  <key1>value1</key1>
  <key2>value2</key2>
</myMap>

4、Properties 类型

这一类包含所有实现java.util.Properties的映射。这些参数通过包含XML标签配置,形如<property><name>myName</name> <value>myValue</value> </property>,例如:

/**
  * My Properties.
  */
 @Parameter
 private Properties myProperties;


<myProperties>
  <property>
    <name>propertyName1</name>
    <value>propertyValue1</value>
  <property>
  <property>
    <name>propertyName2</name>
    <value>propertyValue2</value>
  <property>
</myProperties>

5、自定义对象类型

这一类包含所有未实现java.util.Map、java.util.Collection和java.util.Dictionary的类。例如:

/**
    * My Object.
    */
   @Parameter
   private MyObject myObject;


<myObject>
  <myField>test</myField>
</myObject>

6、使用setters方法

当属性名和插件配置中实际的参数名不一致时,对参数对应的属性名的标记,这是用来告知Maven要使用的getter和setter。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值