Как выполнить скрипт Perl с помощью задачи Ant exec? - PullRequest
2 голосов
/ 04 августа 2009

У меня сейчас есть это в моем скрипте сборки Ant:

<exec dir="${basedir}" executable="perl">
    <arg line="${basedir}/version.pl -major"/>
</exec>

Однако, когда это запускается, я получаю это сообщение об ошибке:

[exec] Не удалось открыть -major
[exec] Результат: 2

Для меня это говорит о том, что я пытаюсь запустить файл с именем -major, который не существует. Это файл version.pl, который принимает аргумент -major.

Как я могу изменить это для запуска version.pl с аргументом -major?

Обратите внимание, что я запускаю скрипт ant на компьютере Solaris, однако кроссплатформенность или решения для других ОС приветствуются для потомков.

Ответы [ 3 ]

5 голосов
/ 04 августа 2009

Я сделал небольшой небольшой скрипт на Perl, который ничего не делал, и запустил его, просто передав ему аргументы командной строки, используя Ant 1.5 на коробке Solaris.

<project name="perly" basedir="." default="run">
    <target name="run">
        <exec executable="perl" dir="${basedir}">
            <arg value="version.pl"/>
            <arg value="-major"/>
        </exec>
    </target>
</project>

$ ant run

Что я не могу понять, так это то, как вы получаете сообщение «Не могу открыть - главный». Это пользовательское сообщение die или что-то в этом роде? Должно ли быть передано имя файла вместо основного?

0 голосов
/ 04 августа 2009

Попробуйте, если это работает:

<exec dir="${basedir}" executable="./test.pl">
   <arg line="-major"/>
</exec>

Из документа муравья exec:

dir: каталог, в котором должна выполняться команда.

Так что я полагаю, что он делает cd для $ dir и исполняет исполняемый файл $ (набор shebang)

0 голосов
/ 04 августа 2009

Вы можете попробовать это:

<exec executable="perl" dir="${basedir}">
    <arg value="version.pl"/>
    <arg value="-major"/>
</exec>

На окнах, которые

...