2013-03-27 6 views
2

하나의 항아리에 모든 하위 디렉토리를 병합 :나는이 (넷빈즈에서 거의 표준)과 같은 디렉토리 구조를 가지고

<jar destfile="sources.jar" compress="true"> 
    <fileset dir="src"/> 
    <fileset dir="build/generated/gen-1"/> 
    <fileset dir="build/generated/gen-2"/> 
    ... 
    <fileset dir="build/generated/gen-n"/> 
</jar> 

내가 함께 build/generated의 모든 하위 디렉토리를 항아리하려는 말을 컴팩트 한 방법이 있지만, gen- 내가 접두사를 피하는?

<dirset>으로 부지려고했지만 <jar>과 섞을 수 없었습니다.

모든 것을 임시 디렉토리 (예 : this answer)로 복사하는 것을 피하는 방법이 필요합니다.

답변

3

당신이 때문에 개미는 재산 확장을 수행하는 방법에

<jar destfile="sources.jar" compress="true"> 
    <fileset dir="src"/> 
    <mappedresources> 
     <fileset dir="build/generated"/> 
     <regexpmapper from="^gen-\d*/(.*)$$" to="\1" handledirsep="true"/> 
    </mappedresources> 
</jar> 

<mappedresources>가 (실제로 정규 표현식에서 하나의 달러입니다 from 속성에 두 배 달러 기호,주의 사용할 수 있습니다 당신이 적어도 1.8 개미가 가정 속성 있음)

+0

멋진 분, 고마워요! – Flavio

+0

나는 또한 '을 발견했다. 이것은 더 쉬운 구문으로 속임수를 사용한다. – Flavio

+0

@Flavio 그렇기 때문에 내 개미가 1.8.1인데 그 이유는 내가 눈치 채지 못했기 때문입니다. –

0

Ant에서는 가능하지 않을까합니다. one-jar 라이브러리를 살펴볼 수도 있지만 모든 파일 세트를 지정해야합니다.

다른 빌드 도구를 사용할 기회가있는 경우 Gradle을 사용하는 것이 좋습니다.

+0

감사하지만 빌드 시스템을 전환하는 것은 옵션이 아닙니다! – Flavio

관련 문제