2013-12-19 1 views
0

현재 디렉토리에서 모든 병을 선택하려고합니다. 내가 *.jar**/*.jar과 동일하게 작동합니다 가정파일 이름 선택기시 ant 정규식과의 혼동

  • **/*.jar
  • *.jar

: 사이에 난 혼란스러워지고 있어요. 그러나 다음의 예는 다르게 작동 :

<path id="master-classpath-common-lib" > 
    <fileset dir="."> 
     <include name="**/*.jar"/> 
    </fileset> 
</path> 

<path id="master-classpath-common-lib" > 
    <fileset dir="."> 
     <include name="*.jar"/> 
    </fileset> 
</path> 

*.jar 전혀 작동하지 않습니다이 경우를 들어.

아무에게도 약간의 힌트를 줄 수 있습니까?

+0

실제 정규식인가요? 어떤 파일입니까? 정규식 인 경우 다음과 같이 작동합니다 :'. * \. jar' 별표는 대개 문자 앞에 무한한 양의 문자를 사용할 수 있음을 의미합니다. 이 경우 점은 모든 문자를 의미합니다. 그래서. *는 .jar가 유효하기 전에 모든 문자를 의미합니다. – nils

답변

0

*.jar은 모든 .jar 파일이 기본 디렉토리 (<fileset dir="${master.classpath}/lib">에 지정된 디렉토리)에만 있음을 의미합니다. 하위 디렉토리에있는 파일은 포함되지 않습니다.

**/*.jar에서 ** (디렉토리 이름으로 사용)은 특수 기능이므로 모든 (중첩 된) 하위 디렉토리를 의미합니다.

설명이있는 예제는 here입니다.