Ссылаясь на файлы в zipfileset, который не существует в ANT - PullRequest
0 голосов
/ 28 ноября 2011

Я хочу знать, возможно ли это:

  • Обращаясь к файлам в zipfileset, которые могут существовать или не существовать в связи с выводом сборки

как я могусправиться с этим в zipfileset

Есть идеи?

Спасибо

С уважением

Картик

Ответы [ 2 ]

2 голосов
/ 09 мая 2013

Включает / исключает работы для файлов, но не каталогов. По крайней мере, начиная с 1.8.x (то, что я использую, не проверял 1.6), вы можете использовать:

<zipfileset dir="something" prefix="" erroronmissingdir="false">

чтобы не выдавать эту ошибку. Атрибут erroronmissingdir позволяет исправить это условие.

1 голос
/ 30 ноября 2011

Я не вижу никаких проблем с этим.

Вот пример файла zip (jar):

$ jar tvf src.zip
     0 Wed Nov 30 11:54:38 GMT 2011 META-INF/
    62 Wed Nov 30 11:54:38 GMT 2011 META-INF/MANIFEST.MF
     0 Wed Nov 30 11:53:28 GMT 2011 src/
     0 Wed Nov 30 11:57:14 GMT 2011 src/a/
     0 Wed Nov 30 11:53:38 GMT 2011 src/a/exists.txt
     0 Wed Nov 30 11:57:14 GMT 2011 src/a/other.txt

Вот пример файла сборки для проверки поведения zipfileset для существующих и несуществующих файлов:

<project default="test">

  <target name="test">
    <pathconvert property="found">
      <zipfileset src="src.zip">
        <include name="src/a/not-exists.txt"/>
        <include name="src/a/exists.txt"/>
      </zipfileset>
    </pathconvert>
    <echo message="found: ${found}"/>
    <mkdir dir="extract"/>
    <copy todir="extract">
      <zipfileset src="src.zip">
        <include name="src/a/not-exists.txt"/>
        <include name="src/a/exists.txt"/>
      </zipfileset>
    </copy>
  </target>

</project>

Вот вывод из этого образца:

$ ant
Buildfile: C:\tmp\ant\build.xml

test:
     [echo] found: C:\tmp\ant\src.zip:src/a/exists.txt
    [mkdir] Created dir: C:\tmp\ant\extract
     [copy] Copying 1 resource to C:\tmp\ant\extract

BUILD SUCCESSFUL
Total time: 0 seconds

Нет ошибок при попытке доступа к несуществующим файлам.

А вот результат, в который были скопированы файлы dir из zip-файла:

$ find extract/
extract/
extract/src
extract/src/a
extract/src/a/exists.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...