Phing: исключить все каталоги, кроме одного

Я пытаюсь исключить все каталоги, которые содержат строку "экспорт". Должен быть включен только один каталог с именем "exportpecial".

Этот способ "exportpecial" все еще не включен:

    <fileset dir="${dir.root}/plugins" id="something">
        <include name="abc/**" />
        <exclude name="abc/*export**" />            
        <include name="abc/exportspecial/**" />         
    </fileset>

1 ответ

Вы можете использовать селекторы

    <fileset dir=".">
        <include name="abc/**"/>
        <or>
            <filename name="**/exportspecial/**"/>
            <not>
                <filename name="**/*export*/**"/>
            </not>
        </or>
    </fileset>

Пример файла сборки:

<project name="selector-test" default="includeTest" basedir=".">
    <target name="includeTest" depends="prepare">
      <path id="export.path">
        <fileset dir=".">
          <include name="abc/**"/>
          <or>
            <filename name="**/exportspecial/**"/>
            <not>
              <filename name="**/*export*/**"/>
            </not>
          </or>
        </fileset>
      </path>
      <pathconvert pathsep="${line.separator}"
                   property="echo.include.path"
                   refid="export.path"/>
      <echo>${echo.include.path}</echo>
  </target>

  <target name="prepare">
    <touch file="abc/test/inc" mkdirs="true"/>
    <touch file="abc/exportspecial/inc" mkdirs="true"/>
    <touch file="abc/export/exc" mkdirs="true"/>
    <touch file="abc/inc"/>
  </target>

</project>
Другие вопросы по тегам