2009-05-07 9 views
1

Comment vérifier si une classe particulière existe dans un fichier JAR? J'ai essayé la tâche disponible et cela ne semble pas fonctionnerAnt: Vérifier si la classe existe dans un fichier jar

S'il y a un moyen, puis-je utiliser des motifs dedans?

Par exemple, je veux vérifier si un modèle de correspondance de classe **/xyz/foo.class existe dans fooBar.jar

Toute direction apprécié.

Répondre

2

La tâche Disponible devrait fonctionner, si vous lui donnez le nom exact de la classe. Voici un exemple du manuel Ant pour available:

...in project ... 
<property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/> 
<path id="jaxp" location="${jaxp.jar}"/> 
...in target ... 
<available classname="javax.xml.transform.Transformer" 
      classpathref="jaxp" property="jaxp11.present"/> 

Je ne sais pas d'un moyen de recherche basée sur un modèle, à court d'écrire votre propre tâche. Je suppose que vous pourriez utiliser la tâche unjar pour extraire le modèle dans un répertoire temporaire, puis vérifier si le fichier existe. Par exemple:

<property name="temp.dir" value="some_temp_directory"/> 
<unjar src="foobar.jar" dest="${temp.dir}"> 
    <patternset> 
     <include name="**/xyz/foo.class"/> 
    </patternset> 
    <mapper type="flatten"/> 
</unjar> 
<available property="foo.present" file="${temp.dir}/foo.class"/> 
+0

Merci, j'ai fini par écrire ma propre tâche :) – swordfish

Questions connexes