我正在编写一个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;
答案 0 :(得分:8)
要我的知识,这实际上是不可能的,没有真正的方法来为具有多个值的参数类型(如数组,集合或地图)指定默认值),至少不是parameter
。我过去也必须这样做,并且在阅读array (or collecton) as a default-value of a mojo configuration parameter或configuring a list as default value for a plugin parameter之类的线程后,我最终在execute()
方法中设置了默认值,就像Chris在评论中提到的{{{1}} 3}}(例如,请参阅his answer插件flexmojos:wrapper和sources参数。)
答案 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上的具有多个值的参数类型部分,其中还详细说明了允许具有多个值的参数的其他方法。