是否可以通过refid在ant中包含/排除文件列表?

bra*_*rry 7 java ant

我们目前有一个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>
Run Code Online (Sandbox Code Playgroud)

然后任务在这里引用模式集:

 <fileset dir="${css.dir}" id="stuff_css" includes="*/stuff/*.css">
    <patternset refid="exclude_css" />
 </fileset>
Run Code Online (Sandbox Code Playgroud)

进一步说,它在这里引用了文件集:

<concat destfile="build/all.css" append="false" force="yes">
    <filelist refid="ordered_css" />
    <fileset refid="stuff_css" />
</concat>
Run Code Online (Sandbox Code Playgroud)

有没有办法将两个文件列表合并为一个可以在两个地方引用的类型?到目前为止,我还没有找到方法,因为模式集包含排除.我希望能够简单地创建一个文件列表并包含或排除引用的列表.

lee*_*777 6

一个property可以通过使用两个,如果你使用filelist filespatternset excludes属性.

<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}"/>
Run Code Online (Sandbox Code Playgroud)