9

我正在编写一个 Maven 插件,并且我正在为所有参数使用默认值,例如:

/**
 * The file with the site structure.
 * 
 * @parameter expression="${generateSite.siteFile}" default-value="${basedir}/src/oda/site.xml"
 */
private File siteFile;

现在我添加了一个新参数,它是一个集合。有没有办法为如下参数设置默认值?

/**
 * A list of file/directory names to exclude in the processing.
 * 
 * @parameter ????
 */
private Set<String> excludes;
4

2 回答 2

8

所知,这实际上是不可能的,没有真正的方法可以为具有多个值的参数类型(如数组、集合或映射)指定默认值,至少不能像parameter. 我过去也必须这样做,并且将数组(或集合)之类的线程读取为 mojo 配置参数的默认值或将列表配置为插件参数的默认值execute(),我最终在方法中设置了默认值,就像克里斯在对他的回答的评论中提到的那样(例如参见flexmojos:wrapper插件参数参数)。

于 2009-11-02T21:33:56.733 回答
-1

我不认为 Set 得到明确支持,但以下内容将起作用:

/**
 * A list of file/directory names to exclude in the processing.
 *
 * @parameter
 */
private String[] myFiles;

然后,您可以使用以下方式对其进行配置:

<myFiles>
  <param>value1</param>
  <param>value2</param>
</myFiles>

顺便说一句,这取自此页面上的具有多个值的参数类型部分,该部分还详细介绍了允许具有多个值的参数的其他方法。

于 2009-11-02T03:55:15.570 回答