2013-05-16 3 views
6

Je travaille sur un projet en utilisant Apache Ant et ma mise en page du projet est la suivante:question Basedir dans le code Ant

project/build.xml 
project/properties/build.properties 
project/tool/antcontrib.jar 

Ici, quand je lance la commande ant qu'il fonctionne bien et mon répertoire de base est basedir = » "

Maintenant, je veux ma mise en page du projet sera le suivant:

project/folder/build.xml 
project/properties/build.properties 
project/tool/antcontrib.jar 

Maintenant, j'ai changé mon répertoire de base basedir = "..". Je pensais que ça pourrait marcher. mais ça ne marche toujours pas. Donc je ne voulais pas savoir ce que nous devons définir notre base pour '../' Voici le bloc de code lié à taskdef défini dans mon fichier build.xml.

<taskdef resource="net/sf/antcontrib/antlib.xml"> 
     <classpath> 
      <pathelement location="${tool.ant.contrib}"/> 
     </classpath> 
    </taskdef> 

NOTE: Je connais que build.xml et fichier de propriétés doivent être dans le même dossier sa pratique standard. Mais je ne veux pas suivre cela.peut-on m'aider ici ...

+0

-vous obtenez un message d'erreur avec une tâche spécifique? Si oui, pouvez-vous poster cette partie du fichier de construction? –

+0

Je suis sûr que si le chemin basedir est réglé correctement tout fonctionnera bien. Mais la chose est ../ne fonctionne pas dans basedir. Pouvez-vous dire si j'utilise .. au lieu de ../ est-ce correct? –

+2

Que voulez-vous dire par "Ce ne fonctionne pas pour moi", quelle est l'erreur? Comment appelez-vous la fourmi à partir de quel répertoire de travail? –

Répondre

1

Pour fonctionner, la propriété tool.ant.contrib devrait être un chemin relatif, pas un absolu.

Par exemple, cette pièce de construction fonctionne:

<project basedir=".."> 
    <property name="tool.ant.contrib" location="tool/antcontrib.jar" /> 
    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
     <classpath> 
      <pathelement location="${tool.ant.contrib}"/> 
     </classpath> 
    </taskdef> 
    <if><isset property="tool.ant.contrib" /> 
     <then><echo message="OK" /></then> 
    </if> 
</project> 
+0

Mon emplacement contient déjà le chemin relatif et non absolu par pour tool.ant.contrib dans l'emplacement de l'attribut –

+0

Comme demandé dans les autres commentaires, il manque quelque chose pour résoudre votre puzzle. Partagez votre erreur et la façon dont vous définissez cette propriété 'tool.ant.contrib '. –