2009-05-07 3 views
1

항아리 파일에 특정 클래스가 있는지 어떻게 확인합니까? 가능한 작업을 시도했지만 작동하지 않는 것 같습니다.개미 : 항아리에 클래스가 있는지 확인하십시오.

방법이 있다면, 패턴을 사용할 수 있습니까?

예를 들어, I는 클래스 일치 패턴이 **/xyz/foo.class

알 어떤 방향 foobar.jar

에 존재하는지 확인하고 싶다.

답변

2

정확한 클래스 이름을 지정하면 사용 가능한 작업이 작동합니다. 자신의 작업을 쓰는 짧은

...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"/> 

내가 어떤 방법을 알고하지 않는 패턴을 기반으로 검색하기 : 여기 available의 개미 매뉴얼의 예입니다. 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

관련 문제