2009-08-04 5 views
2

J'ai actuellement dans mon script Ant build:Comment puis-je exécuter un script Perl à l'aide de la tâche exec Ant?

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

Cependant, quand ce court, je reçois ce message d'erreur:

[exec] Impossible d'ouvrir -Major
[exec] Résultat: 2

Pour moi, cela dit que ce que j'ai essaye d'exécuter un fichier appelé -major, qui n'existe pas. Le fichier est version.pl qui prend un argument de -major.

Comment puis-je modifier cela pour exécuter version.pl avec l'argument -major?

Notez que je suis en train d'exécuter le script ant sur une machine Solaris, mais les plateformes multiplates-formes ou les solutions pour d'autres systèmes d'exploitation sont les bienvenues pour la postérité.

Répondre

5

J'ai fait un petit script Perl rapide qui n'a pas fait beaucoup et il a couru très bien commande de passage arguments de ligne à l'aide de Ant 1.5 sur une boîte 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 

Ce que je n'arrive pas à comprendre, c'est comment vous obtenez "Impossible d'ouvrir -major". Est-ce un message personnalisé die ou quelque chose? Est-il censé être un nom de fichier passé à la place de majeur?

0

Vous pouvez essayer ceci:

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

Sur les fenêtres qui est

+1

J'aurais dû préciser que je cours sous Solaris. Cependant, c'est un conseil valable, d'autant plus que je ne l'ai pas précisé, donc je ne vais pas baisser la note. –

+0

Aussi, c'est la même chose qui a été suggérée par Ville Laurikari (maintenant supprimée) qui ne fonctionne pas. Le même message d'erreur est produit. –

0

Essayez ceci si cela fonctionne:

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

De la fourmi exec doc:

dir: la répertoire dans lequel la commande doit être exécutée.

donc je suppose qu'il fait un cd au $ dir et exec l'exécutable $ (set tralala)

+0

Même résultat qu'avant. –

+0

Ce qui précède fonctionne sur Ubuntu gutsy - Ant version 1.7.0 Quelle version de fourmi utilisez-vous? – ccheneson

+0

1.5.4, je suppose. Je peux voir à propos d'obtenir Ant mis à jour sur le serveur. –

Questions connexes