2016-07-12 3 views
0

Ниже приведен мой скрипт для муравьев.Не удается запустить 'Ant exec executable = "zip"'

<exec executable="zip" dir="/usr/local/clo/ven/image/manual_bundle/testzip/"> 
    <arg value="-y"/> 
    <arg value="-r"/> 
    <arg value="${file.path}"/> 
    <arg value="*"/> 
    </exec> 

Но ниже произошла ошибка.


zip-image_binary: 
    [exec]  zip warning: name not matched: * 
    [exec] 
    [exec] zip error: Nothing to do! (try: zip -y -r /usr/local/clo/ven/image/a.zip . -i *) 
    [exec] Result: 12 

Моя цель состоит в том, чтобы пронестись все файлы и каталоги в /USR/местные/CLO/VEN/изображение/manual_bundle/testzip/

+0

Я думаю, что есть 'zip' задача встроены в муравей, смотрите [здесь] (https: //ant.apache. org/manual/Tasks/zip.html), возможно, это работает лучше. Похоже, ваш zip-вызов выполняется в пустом каталоге, поэтому он не находит ничего, что нужно сделать. –

ответ

2

При запуске команда, использующая вашу оболочку, тогда оболочка расширяет шаблон шарика *. Zip-исполняемый файл не ожидает никакого шаблона вообще, кроме списка файлов (обычно предоставляемых вашей оболочкой). Если вы не хотите использовать встроенную задачу zip, вы можете эмулировать это поведение, используя apply, а не exec. Что-то вроде этого

<apply executable="zip" parallel="true" relative="true" 
     dir="/usr/local/clo/ven/image/manual_bundle/testzip/"> 
    <fileset dir="/usr/local/clo/ven/image/manual_bundle/testzip/"/> 
    <mergemapper to="${file.path}"/> 
    <arg value="-y"/> 
    <arg value="-r"/> 
    <targetfile/> 
</apply> 

Эквивалентной zip задачи намного проще

<zip destfile="${file.path}"> 
    <fileset dir="/usr/local/clo/ven/image/manual_bundle/testzip/"/> 
</zip> 
Смежные вопросы