2009-05-07 2 views
1

Как проверить, существует ли конкретный класс в файле jar? Я попробовал доступную задачу, и она не работаетAnt: проверьте, существует ли класс в банке

Если есть способ, могу ли я использовать шаблоны в нем?

Например, я хочу, чтобы проверить, если шаблон согласования класса **/xyz/foo.class существует в foobar.jar

Любое направление ценится.

ответ

2

Доступная задача должна работать, если вы дадите ей точное имя класса. Вот пример из Ant руководства 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"/> 

Я не знаю ни одного способа поиска на основании шаблона, короткие написания собственного задания. Думаю, вы могли бы использовать задачу unjar, чтобы извлечь шаблон во временный каталог, а затем проверить, существует ли файл. Например:

<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

Спасибо, я закончил писать свою задачу :) – swordfish