여러 프로젝트에서 동일한 build.xml
파일을 재사용하려고하는 시나리오가 있습니다. 각각의 경우 최종 목표는 JAR이 모두 처리하는 dist
입니다. 유일한 차이점은 프로젝트 중 일부는 src/main/java/META-INF/*
디렉토리이고 일부는 그렇지 않다는 것입니다 (그리고 단지 src/main/java/*
디렉토리가 있음).Ant Contrib 선택적 JAR META-INF의 경우
빌드에 src/main/java/META-INF/*
디렉토리가있는 것으로 확인되는 경우, 개미 도용 <if/>
작업을 사용하여 원하는 경우 META-INF/
디렉토리를 정의하고 싶습니다. 이 같은 뭔가 :
<jar jarfile="myapp.jar">
<if>
<available file="src/main/java/META-INF" />
<then>
<!--
Copy everything from src/main/java/META-INF into
the JAR's META-INF directory.
But how?!?
-->
<echo message="I'm trying to copy META-INF!" />
</then>
</if>
</jar>
하지만 여기에 두 가지에 질식하고있다 :이 목표를 실행하면
- , 나는 내용의 빌드 예외가 그 I 수있는
<jar/>
내부 중첩하지<if/>
태스크; 그리고 META-INF
디렉토리를 클래스 경로의 루트에 생성하고src/main/java/META-INF
내용을 모두 복사하는 방법을 잘 모르겠습니다.
의견이 있으십니까? 미리 감사드립니다.
그래서 다른 디렉토리의 jar 파일에 클래스를 포함하고 src/main/java/META-INF의 내용을 선택적으로 META-INF로 포함 하시겠습니까? 그렇다면 jar 작업 내에서 metainf 중첩 요소를 사용할 수 있습니다. 매니페스트 파일 중 하나입니까? –
감사합니다. @martin clayton (+1) - MANIFEST.MF를 사용하는 것에 반대하지는 않았지만 현재 프로젝트에는 (적어도 명시 적으로 정의하지 않은) 프로젝트가 없습니다. 그래서 더미/빈 manfiest를 만들거나 Ant가 나를 위해 하나 만들어야한다면, 나는 그걸로 충분합니다. 하지만 귀하의 질문에 대답 : 매니 페스트는 현재 파일 중 하나가 아닙니다. –