우리는 각각의 하위 프로젝트에 하나씩 많은 Ant 스크립트를 가지고 있습니다. 결국 우리는 마스터 빌드 스크립트에서이 모든 것을 실행하고 전체 프로젝트를 패키징하기 위해 다른 하우스 클리닝을 수행하기를 원합니다. 개별 개미 스크립트의 이름은 ant.xml
이며 프로젝트의 하위 디렉토리에 있습니다. 각각은 Ant import
을 사용하여 ant-commons.xml
을 가져온 다음 특정 대상을 무시합니다. 예를 들어Ant 마스터 빌드 파일이 제대로 작동하지 않는 이유는 무엇입니까?
는 프로젝트 중 하나는이 모두 적절하게 classpath
을 설정하고, 이론적으로,
이제 1.5에 source
및 target
을 (개미 - 공유지 1.4을 사용) 설정하려면 compile
대상을 재정의 쉬운 소리.
처음 몇 하위 프로젝트가 잘 실행 : 실제로 어떻게됩니까
<project name="Retain" basedir="." default="main">
<target name="main">
<ant dir="SharedJava" antfile="ant.xml" target="clean"/>
<ant dir="SharedJava" antfile="ant.xml" target="copy_current"/>
<ant dir="GWEasySoap" antfile="ant.xml" target="clean"/>
<ant dir="GWEasySoap" antfile="ant.xml" target="copy_current"/>
<ant dir="RetainLib" antfile="ant.xml" target="clean"/>
<ant dir="RetainLib" antfile="ant.xml" inheritAll="false" target="copy_current"/>
<ant dir="RetainIndex" antfile="ant.xml" target="clean"/>
<ant dir="RetainIndex" antfile="ant.xml" target="copy_current"/>
<ant dir="RetainPersist" antfile="ant.xml" target="clean"/>
<ant dir="RetainPersist" antfile="ant.xml" target="copy_current"/>
</target>
</project>
다음은 마스터 빌드 스크립트입니다. 사실, SharedJava
의 항아리에 대한 참조가 필요한 RetainLib
은 실패하고, 실패하면 어떻게 찾을 수없는 지에 대해 징벌을합니다. RetainLib
을 제거했을 때 RetainIndex
에 실패했습니다. 1.4 타겟 파일에서 제네릭을 사용하지 말아야 할 방법에 대해 징징 대는 것입니다.
주위를 연주 한 후, 나는 오버라이드 된 것 대신 ant-commons
안에 컴파일 타겟을 실행하는 것을 고집했다.
왜? 이 문제를 어떻게 해결할 수 있습니까? (우아하게 말하자면 분명히 ant-commons의 사용을 완전히 제거 할 수 있었고 일이 가능할 것이라고 확신했습니다.)
아니요. 죄송합니다. 귀하의 충고는 적어도 결과에 따라 정확히 틀립니다. 1. dir을 제거하고 inheritFalse를 사용하면 호출 된 ant.xml 스크립트가 현재 디렉토리와 혼동되기 때문에 빌드가 즉시 실패합니다. 2.그것으로 복원 된 dir은 영광스럽고 정당한 장소입니다. :) 그리고 inheritFalse는 정확하게 설명 된대로 빌드가 실패합니다. –