2014-04-24 3 views
0

우리는 빌드되어 ant를 사용하는 사용자 정의 빌드 응용 프로그램을 보유하고 있습니다. 이 응용 프로그램에서는 Bob이라고합니다. xml 파일을 읽고 interproject 종속성을 이해합니다.gradle 프로젝트 의존성 빌드 할 개미 파일 사용

다음 프로젝트가 있습니다 파일/디렉토리 구조입니다.

--root 
|--P1 
|--P2 
|--P3 
|--P4 

각 프로젝트 (root 제외)에는 build.xml 파일이 있습니다. 그래서 같이 보일 수 있습니다 밥의 interproject 종속 XML 파일은 다음과 같습니다

<project name="P1"> 
</project> 

<project name="P2"> 
    <dependencies> 
    <dependsOn name="P1"/> 
    </dependencies> 
</project> 

<project name="P3"> 
    <dependencies> 
    <dependsOn name="P2"/>  
    </dependencies> 
</project> 

<project name="P4"> 
    <dependencies> 
    <dependsOn name="P2"/>  
    </dependencies> 
</project> 

</projects> 

그래서 당신은 당신이 단순히를 호출 개미 각 프로젝트를 빌드 그래서

--root 
    |P1 
    |--P2 
     |--P3 
     |--P4 

과 같을 것이다 볼 수 종속성 트리 빌드 타겟. Bob에게 P3을 빌드하라고 말하면 P1, P2, P3 순으로 각 프로젝트마다 개미를 호출하는 것을 알고 있습니다.

Gradle의 ant.importBuild 'builder.xml'을 사용하고 빌드 순서가 항상 올바르도록 위의 프로젝트 구조를 정의하는 가장 간단한 방법은 무엇입니까?

이 작업을 위해 디렉터리를 다시 구성하고 싶지는 않습니다.

답변

1

다중 프로젝트 Gradle 빌드를 정의하고 필요에 따라 Ant 대상 (가져온 후에 Gradle 작업이 됨)을 연결해야합니다. 그러나 기존 앤트 빌드와 유사한 레거시 Gradle 빌드로 끝나고 대부분의 Gradle의 장점을 놓치게됩니다. 총알을 물고 빌딩을 Gradle에 이식하면 훨씬 좋고 오래가는 결과를 얻을 수 있습니다. 이식 된 빌드는 여전히 필요할 때가끔 Ant 태스크를 재사용 할 수 있지만 Ant 스크립트를 가져 오면 안됩니다.

+0

각 프로젝트의 각 개미 빌드 파일에는 "빌드"라는 단일 타겟이 포함되어 있다고 가정 해 보겠습니다. 내가 P3과 P4 후에 P2를하기 전에 P1에서이 타겟을 호출하려면 어떻게해야합니까? 전체 포트를 사용하는 것은 현재 카드에 없습니다. 관리자가 여기에 물어보기 전에 총알을 두드리기를 원합니다. :) – n4rzul

+0

Y의 작업 전에 프로젝트 X에서 모든 작업을 쉽게 실행할 수 없으며 또한 잘못된 작업입니다. 대신 작업 종속성을 개별적으로 모델링해야합니다. 'compile.dependsOn (": otherProject : jar")'. 그러나이 작업은 실제로 빌드를 이식하면 다소 쓸모가 없습니다. –

+0

예를 들어 jar 전에 컴파일하는 것과 같은 작업 간에는 종속성이 있음을 알고 있지만 프로젝트간에 종속성을 어떻게 표현합니까? – n4rzul

관련 문제