当且仅当paternset确实存在时,我想添加一个排除列表。我不确定如何检查模式集是否存在,所以我添加了一个常规属性作为标志。
<echo message="${property::exists('package.processSpecials')}" />
<fileset id="subprojects" basedir="${build.workspace}" >
<include name="*" />
<patternset refid="package.excludespecials" if="package.processSpecials" />
</fileset>
这失败是因为package.excludespecials不存在,即使package.processSpecials不存在。
[echo] False
BUILD FAILED
...package.build(288,10):
patternset reference 'package.excludespecials' not defined.
我尝试在文件集定义中放入一个if语句,但这是一个意想不到的元素。
我感觉有点笨拙的另一种选择是:
<if test="${property::exists('package.processSpecials')}">
<fileset id="subprojects" basedir="${build.workspace}" >
<include name="*" />
<patternset refid="package.excludespecials" />
</fileset>
</if>
<if test="${not property::exists('package.processSpecials')}">
<fileset id="subprojects" basedir="${build.workspace}" >
<include name="*" />
</fileset>
</if>