2010-07-18 2 views
2

개미에서 jar 작업을 사용 중이고 특정 디렉토리를 제외하고자합니다.Ant FileSet에 이미 포함되어있는 디렉토리를 제외하는 방법은 무엇입니까?

food 
|_ fruits 
    |_ apples 
    |_ bananas 

는 (일반적인 만들어 조금 단순화 된)

을 그리고이 같은 개미 작업이 : 디렉토리의 구조는 무엇인가처럼 내가

<jar destfile="Dest.jar"> 
    ... 
    <fileset dir="food"> 
      <exclude name="**/bananas/" /> 
      <exclude name="**/*Test*" /> 
      <include name="**/*.class" /> 
    </fileset> 
    ... 

을 시도하고 무엇을 하는 것입니다 :

  • 은 "을 .class"에서 끝나는 모든 파일을 포함 (이 작품)
  • 가 파일 이름에 "테스트"가 모든 파일을 제외
  • 내가 여러 조합을 시도

(이 작동하지 않습니다 )라는 이름의 전체 디렉토리 "바나나"를 제외 (이 작품) 바나나 디렉토리를 제외시키려는 시도에서의 와일드 카드. 나는 또한 그것이 포함되는지에 대해서는 잘 모르지만, include와 rede를 재정렬하려고 시도했다. 나는 또한 일을하지 않은 몇 가지 다른 제안을 시도했다. 내 추측 컨데 바나나 디렉토리 안에는 "* .class"와 일치하는 파일이 있기 때문에 그 포함이 바나나가 제외되는 것을 막고 있다고 생각합니다.

NB : 정확히 바나나 디렉토리의 실제 이름과 일치하므로 대소 문자를 구분해서는 안됩니다. 작업을 더 간단하게 만들 수 있다면 디렉토리에 대한 전체 경로를 참조 할 수 있습니다.하지만 개미 작업에서 좀 더 리팩터링을 선호합니다.

이미 ant 파일 세트에 포함되어있는 디렉토리를 제외 할 수 있습니까?


[1] http://www.velocityreviews.com/forums/t146608-in-ant-how-do-you-exclude-a-directory-from-copy-or-zip.html
[2] http://www.java2s.com/Tutorial/Java/0520__Ant/filesetwithexclude.htm

+0

Ant의 버전 및 플랫폼은 무엇입니까? Windows XP에서 Ant 1.8.1로 예제를 다시 만들려고했지만 원하는대로 작동하는 것 같습니다. –

+0

Eclipse 내에서 버전 1.7.1을 실행 중입니다. 나는 1.8.1을 시도해보고 차이가 있는지 확인한다. – Grundlefleck

+0

@Anders : 내 대답을 보아라. include/excludes 작업에 대해 절대적으로 옳았으며, 앤트 작업 자체에 대한 응답을 찾도록했다. :-) – Grundlefleck

답변

2

내가 문제의 원인을 발견했습니다, 그리고 개미 작업이 작성된 방법과는 아무 상관 없었다.

문제는 겉으로는 파일 세트와 관련이 없으며 제외되며, 실제로 jar 파일이 실제로 작성되었는지 여부와 관련이 있습니다. 반복적으로 작업을 실행하고 항상 항아리에 대해 동일한 대상을 사용하면 생성 된 jar 파일이 기존 항아리를 대체하지 않은 것으로 보입니다 (내가 가정 한 것처럼). 항아리를 삭제하고 개미 작업을 다시 실행하면 예상 한 결과가 나타납니다.

파일을 대체한다고 가정 할 때 바보가되는지, 아니면 불쾌감을 느끼기에 적절한 지에 대한 로그 메시지가 없으면 환영받을 것이라고 생각합니다. Anyhoo, 문제 해결.

+2

이상하게도 나는 로그 메시지를 기대했을 것이다. 호기심에서, 당신은 -verbose 플래그 (http://ant.apache.org/problems.html # % 20Debug % 20Output을 검사하십시오.)? 빌드 스크립트를 사용하면 항상 도움이되었습니다. – Pat