2011-05-04 6 views
1

J'ai une compilation ANT qui compile mon projet Java et construit un fichier jar. Une cible ANT crée un classpath manifeste pour le fichier jar. Tout fonctionne bien.Apache ANT classpath classpath

Maintenant, je voudrais ajouter une période '.' au début du chemin de classe manifeste pour que le répertoire de travail d'exécution se trouve sur le chemin de classe. Comment est-ce que je fais cela en utilisant manifestclasspath?


Mon exemple manifestclasspath:

<manifestclasspath property="foobar.manifest.classpath" jarfile="whocares.jar"> 
     <classpath > 

     <pathelement path="."/> 
      <!-- :-(adds the working directory of the build. --> 

     <pathelement location="lib/some.jar"/> 
     <pathelement location="lib/someother.jar"/> 
     <fileset dir="${foobar.lib.dir}"> 
      <include name="**/*.jar" /> 
     </fileset> 
     </classpath> 
    </manifestclasspath> 

<pathelement path="."/> ajoute le répertoire de travail de la construction à mon classpath manifeste qui est pas ce que je veux. Je veux juste une période.


Ce que je veux le pot classpath pour ressembler à:

Class-Path: . lib/some.jar lib/someother.jar lib/blah.blah.blah.blah.b 
lah.blah.jar /lib/and-on-and-on.jar 

L'essentiel étant la « . » comme le premier élément dans le classpath. Comment faire pour que ANT ajoute le littéral '.' au chemin de classe manifeste?

+0

Qu'est-ce que vous essayez d'atteindre en ajoutant le littéral « » ? Les classes dans le pot ne sont-elles pas automatiquement accessibles de toute façon? – Kal

+0

Je charge des propriétés de remplacement à partir d'un fichier de propriétés dans le répertoire de travail d'exécution. – MarkOfHall

+0

En regardant le code, le chemin doit toujours être relatif au pot que vous avez spécifié. Si "." est le 'basedir' de votre projet et" whocares.jar "est à l'intérieur de". " alors vous devriez avoir "." à l'intérieur de la propriété ou c'est un bug (et vous devriez le signaler). –

Répondre

0

Ne pourriez-vous simplement préfixer manuellement:

<property name="theRealManifestClasspath" value=". ${foobar.manifest.classpath}"/>