我们目前有一个ant任务,其中包含类似于以下内容的内容:
<filelist dir="${css.dir}" id="ordered_css">
<file name="interface/foo.css" />
<file name="pages/monkey.css" />
<file name="pages/ninja.css" />
<file name="pages/sidebar.css" />
<file name="pages/bar.css" />
<file name="pages/baz.css" />
<file name="pages/robot.css" />
</filelist>
<patternset id="exclude_css">
<exclude name="interface/foo.css" />
<exclude name="pages/monkey.css" />
<exclude name="pages/ninja.css" />
<exclude name="pages/sidebar.css" />
<exclude name="pages/bar.css" />
<exclude name="pages/baz.css" />
<exclude name="pages/robot.css" />
</patternset>
然后任务在这里引用模式集:
<fileset dir="${css.dir}" id="stuff_css" includes="*/stuff/*.css">
<patternset refid="exclude_css" />
</fileset>
进一步说,它在这里引用了文件集:
<concat destfile="build/all.css" append="false" force="yes">
<filelist refid="ordered_css" />
<fileset refid="stuff_css" />
</concat>
有没有办法将两个文件列表合并为一个可以在两个地方引用的类型?到目前为止,我还没有找到办法,因为模式集包含排除。我希望能够简单地创建一个文件列表并包含或排除引用的列表。
答案 0 :(得分:6)
如果您使用filelist files
和patternset excludes
属性,则property
可以使用<property name="css_files"
value="interface/foo.css
pages/monkey.css
pages/ninja.css
pages/sidebar.css
pages/bar.css
pages/baz.css
pages/robot.css"/>
<filelist id="ordered_css" dir="${css.dir}" files="${css_files}"/>
<patternset id="exclude_css" excludes="${css_files}"/>
。
{{1}}