문제

우리가 아파치 ANT 스크립트를 구축하는 우리의 응용 프로그램은 다음 체크에서의 결과로 JAR 파일로 버전 제어(VSS 이 경우).그러나 이제 우리는 변화는 우리를 필요로 구축 2JAR 파일은 이 프로젝트에 대해 다음 확인을 모두으로 VSS.

현재 대상을 확인하는 원래 JAR 파일로 VSS 발견한 JAR 파일의 이름을 통해 제공합니다.이 있는 쉬운 방법을"일반화"이상할 수 있도록 재사용을 확인하는 JAR 파일에 어떤 이름?에서 정상적인 언어 이론에 대한 호출 기능 매개 변수이지만,내 지식,하지 않을 수도 있 해당하는 개념에서 ANT.

도움이 되었습니까?

해결책

는 것이 좋습니다 것입니다 작업 매크로 이 subant/antcall 기 때문에 주요 장점을 발견으로 매크로는 당신이 완전히 통제를 통해 전달되는 속성을 매크로(특히 원하는 경우 추가하는 새로운 특성을).

당신은 단순히 리팩터링 Ant 스크립트로 시작하는 대상:

<target name="vss.check">
    <vssadd localpath="D:\build\build.00012.zip" 
        comment="Added by automatic build"/>
</target>

매크로 생성(예 복사/붙여넣기 및 대체과@{파일}):

<macrodef name="private-vssadd">
    <attribute name="file"/>
    <sequential>
        <vssadd localpath="@{file}" 
            comment="Added by automatic build"/>
    </sequential>
</macrodef>

를 호출하는 매크로를 가진 파일을:

<target name="vss.check">
    <private-vssadd file="D:\build\File1.zip"/>
    <private-vssadd file="D:\build\File2.zip"/>
</target>

Refactoring,"개미는 방법으로"

다른 팁

그것은 일반적으로 고려하는 나쁜 아이디어 버전을 제어하는 바이너리 파일이지 않는 것이 좋습니다.그러나 만약 당신이 절대적으로 사용할 수 있습니다 antcall 와 결합 param 전달하는 매개변수를 호출 대상입니다.

<antcall target="reusable">
    <param name="some.variable" value="var1"/>
</antcall>

<target name="reusable">
    <!-- Do something with ${some.variable} -->
</target>

을 찾을 수 있습에 대한 자세한 정보 antcall 여기에 작업.

을 살펴 Ant 매크로.그들이 할 수 있을 정의 재사용할 수 있는"루틴을 위한"개미가 있습니다.당신은 예를 찾을 수 있습 (item15).

또한 체크 아웃 subant 작업할 수 있는 통화 같은 대상에서 여러 파일 구축:

<project name="subant" default="subant1">
    <property name="build.dir" value="subant.build"/>
    <target name="subant1">
        <subant target="">
            <property name="build.dir" value="subant1.build"/>
            <property name="not.overloaded" value="not.overloaded"/>
            <fileset dir="." includes="*/build.xml"/>
        </subant>
    </target>
</project>

당신이 사용할 수 있는 겐트 스크립트를 당신의 구축과 그루비 하이 무엇을 원하는 또는 보 그루비 개미 작업.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top