Subdirectories에서 Ant Target을 여러 Build.xml 파일로 전달하십시오

StackOverflow https://stackoverflow.com/questions/819568

  •  03-07-2019
  •  | 
  •  

문제

각각 자체 디렉토리에 여러 모듈이있는 프로젝트가 있습니다. 각 모듈에는 자체 개미 빌드 파일이 있습니다 (build.xml)

루트 디렉토리에서 각 모듈의 빌드 파일을 올바른 순서로 호출하는 일반 빌드 파일을 설정합니다.

<?xml version="1.0"?>
<project name="bridgedb" default="all" basedir=".">
  <target name="all">
    <ant dir="corelib"/>
    <ant dir="tools"/>
    <ant dir="makeGdb"/>
    <ant dir="cytoscape-plugin"/>
  </target>
</project>

이제 각 모듈에는 "깨끗한"대상이 있으므로 다음을 추가합니다.

 <target name="clean">
    <ant dir="corelib" target="clean"/>
    <ant dir="tools" target="clean"/>
    <ant dir="makeGdb" target="clean"/>
    <ant dir="cytoscape-plugin" target="clean"/>
  </target>

그리고 더 많은 목표가 있습니다. 이 복제를 피하기 위해 빌드 파일을 다시 작성하는 방법이 있습니까? 활성 대상이 포함 된 내장 부동산을 찾았지만 찾을 수 없었습니다.

도움이 되었습니까?

해결책

사용하지 않는 이유 앤탈 모든 서브 디르를 참조하는 대상을 호출하고 호출 할 대상을 매개 변수화합니다. 예를 들어

 <antcall target="doStuffToSubdirs">
    <!-- let's clean -->
    <param name="param1" value="clean"/>
  </antcall>

그리고:

<target name="doStuffToSubdirs">
   <ant dir="corelib" target="${param1}"/>
   <ant dir="tools" target="${param1}"/>
    ...etc
</target>

따라서이를 통해 서브 디르로 호출을 매개 변수화 할 수 있습니다. 새 하위 디어를 추가하면 해당 하위 디어를 'Dostufftosubdirs'대상에 추가하면됩니다 (나도 이름을 바꿀 것입니다!)

다른 팁

CommonBuild.xml에 하나의 깨끗한 대상을 넣고 자식 파일에 부모 build.xml을 가져 오십시오.

<import file="${parent.dir}/commonbuild.xml" />

이제 자녀 건물의 깨끗한 목표를 호출 할 수 있습니다. 자녀 빌드에서 깨끗한 대상을 만들어이 대상을 무시할 수도 있습니다.

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