2009-05-07 15 views
1

Wie überprüfe ich, ob eine bestimmte Klasse in einer JAR-Datei existiert? Ich habe versucht Aufgabe und es scheint nicht zu funktionierenAnt: Überprüfen Sie, ob die Klasse in einem Jar existiert

Wenn es einen Weg gibt, kann ich Muster darin verwenden?

Zum Beispiel möchte ich, wenn eine Klasse Anpassungsmuster in **/xyz/foo.class existiert foobar.jar überprüfen

Jede Richtung geschätzt.

Antwort

2

Die verfügbare Aufgabe sollte funktionieren, wenn Sie den genauen Klassennamen angeben. Hier ist ein Beispiel aus dem Ant Handbuch für 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"/> 

Ich weiß nicht von irgendeiner Weise auf einem Muster zur Suche basierte, kurz Ihre eigene Aufgabe zu schreiben. Ich denke, Sie könnten die unjar Aufgabe verwenden, um das Muster in ein temporäres Verzeichnis zu extrahieren und dann zu überprüfen, ob die Datei existiert. Zum Beispiel:

<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

Danke, ich schrieb meine eigene Aufgabe :) – swordfish

Verwandte Themen