Nant foreach include фильтр исключений не работает должным образом - PullRequest
2 голосов
/ 16 февраля 2011

Я хочу исключить определенные файлы из цели nant (0.91) и обработать оставшуюся часть.
Вот фрагмент кода, который показывает, что я хочу включить все файлы .js, но исключаю foo. Фу не исключается. Я пытался поместить исключение перед включением, но тот же результат.

<foreach item="File" in="${built.web.directory}\Content\js" property="filename">
    <in>
        <items basedir="${built.web.directory}\Content\js">
            <include name="/**/*.js" />
            <exclude name="**/foo.1.2.js" />
            <exclude name="foo.1.2.js" />
        </items>
    </in>
    <do>
        <echo message="Compressing ${filename}" />
        <exec program="${packer.exe}" commandline="-o ${built.web.directory}\Content\js\${path::get-file-name(filename)} -m jsmin ${filename}" />
    </do>
</foreach>

Ответы [ 2 ]

7 голосов
/ 21 февраля 2011

Вы указали атрибут in для foreach , который переопределяет элемент items .Попробуйте изменить:

<foreach item="File" in="${built.web.directory}\Content\js" property="filename">

на:

<foreach item="File" property="filename">
1 голос
/ 16 февраля 2011

Это похоже на работу

<fileset id="javascript.files" basedir="${built.web.directory}\Content\js">
    <include name="/**/*.js" />
    <exclude name="**/foo.1.2.js" />
    <exclude name="**/*.min.js" />
</fileset>


<foreach item="File" property="filename">
    <in>
       <items refid="javascript.files" />
    </in>
    <do>
        <echo message="Compressing ${filename}" />
        <exec program="${packer.exe}" commandline="-o ${built.web.directory}\Content\js\${path::get-file-name(filename)} -m jsmin ${filename}" />
    </do>
</foreach>
...