如何为具有Maven插件的多个值的参数配置默认值

时间:2009-11-02 01:51:29

标签: java maven-2 parameters maven-plugin defaults

我正在编写一个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;

2 个答案:

答案 0 :(得分:8)

我的知识,这实际上是不可能的,没有真正的方法来为具有多个值的参数类型(如数组,集合或地图)指定默认值),至少不是parameter。我过去也必须这样做,并且在阅读array (or collecton) as a default-value of a mojo configuration parameterconfiguring a list as default value for a plugin parameter之类的线程后,我最终在execute()方法中设置了默认值,就像Chris在评论中提到的{{{1}} 3}}(例如,请参阅his answer插件flexmojos:wrappersources参数。)

答案 1 :(得分:-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>

BTW这取自this page上的具有多个值的参数类型部分,其中还详细说明了允许具有多个值的参数的其他方法。