2011-01-07 2 views
1

확인을 클릭하면 정말 간단 해 보입니다. 아파치 개미 1.8을 사용하고, 나는 않는 타겟이 있습니다개미 : 포함 및 제외를 함께 사용하십시오.

<delete file="output/program.tar.bz2"/> 
<tar basedir="input" destfile="output/program.tar.bz2" compression="bzip2"> 
    <tarfileset dir="input"> 
    <include name="goodfolder1/**"/> 
    <include name="goodfolder2/**"/> 
    <exclude name="**/badfile"/> 
    <exclude name="**/*.badext"/> 
    </tarfileset> 
</tar> 

을 나는 그것이 "BADFILE"라는 이름의 파일을 제외하고 입력/goodfolder1 및 입력/goodfolder2의 .tar.bz2을 만들고 싶어, 그리고 확장자가 ".badext"인 파일 제외. .tar.bz2를 제공하지만 badfile과 * .badext를 포함하고 있습니다 - 제외는 무시되는 것 같습니다.

include/exclude의 순서가 차이를 느끼지 않습니다. 내가 include/excludes를 래핑하려고했는데 (문서가 암시 적이라고 말하는가?), 아무런 차이가 없었다.

the manual has a very similar example 이후 약간의 다른 문맥이 있기는하지만 나는 실종되었다고 생각합니다.

EDIT : dir="input" 속성과 관련 될 수있는 것처럼 보입니다. 즉, "입력"에 모든 것을 추가 한 다음 tarfileset의 모든 내용을 추가합니다. 원하는 파일은 program.tar.bz2에 두 번 나타나지만 제외 된 파일은 한 번만 나타납니다. 그러나 dir은 필수 항목이며 설명서의 예와 다른 점은 없습니다.

답변

0

두 개의 <tarfileset> 요소를 사용해야한다고 생각합니다. <include><exclude> 요소는 파일 용입니다. 디렉토리가 아닙니다. 예 :

<tar basedir="input" destfile="output/program.tar.bz2" compression="bzip2"> <tarfileset dir="goodfolder1"> <exclude name="**/badfile"/> <exclude name="**/*.badext"/> </tarfileset> <tarfileset dir="goodfolder2"> <exclude name="**/badfile"/> <exclude name="**/*.badext"/> </tarfileset> </tar>

+0

파일이나 폴더에'include'와'exclude' 패턴을 사용할 수 있습니다. 'includesfile'과'excludesfile'을 생각할 수도 있습니다. –

2

아는 <tarfileset> 자체 내 문제를 일으키는 것입니다.

내가 이것을 제거하고 includes/excludes를 <tar> 안에 직접 포함하면 올바르게 작동합니다.