2014-03-26 4 views
2

우리는 다중 프로젝트 설정이 app 프로젝트와 library 프로젝트로 구성되어 있습니다. 이런 식으로android + gradle : 다중 프로젝트 라이브러리 프로젝트

top - 
    |- android-build (build tools here) 
    |- android-help 
    |- helper (app module) 
    |- android-setup 
    |- setup (app module) 
    |- android-common 
    |- common (library module) 
    |- common-style (library module) 

top 아래의 프로젝트는 각각 독립적입니다. app 폴더는 maven 종속성을 통해 라이브러리를 참조합니다 (그래서 libs가 먼저 분명하게 빌드되어야합니다).

모든 앱과 라이브러리를 빌드 할 수있는 빌드 스크립트를 android-build 폴더에 정의하고 보너스로 Android 프로젝트에로드하여 모든 프로젝트를 함께 액세스 할 수있게하고 싶습니다. 내가 정말하고 싶은 것을

* What went wrong: 
A problem occurred evaluating project ':android-common:common'. 
> Project with path ':common-style' could not be found in project ':android-common:common'. 

나는 android-build/settings/gradle이 짓을했는지,

def rootDir = new File(androidBuild + "/..") // androidBuild -> android-build 
println "rootDir=" + rootDir 

include ':android-help:help' 
project(':android-help:help').projectDir = new File(rootDir, 'android-help/help') 

include ':android-setup:setup' 
project(':android-setup:setup').projectDir = new File(rootDir, 'android-setup/setup') 

include ':android-common:common' 
project(':android-common:common').projectDir = new File(rootDir, 'android-common/common') 

include ':android-common:common-style' 
project(':android-common:common-style').projectDir = new File(rootDir, 'android-common/common-style') 

compile project(...)android-common:common-style에 의존하는, android-common:common에 도달 할 때까지 모든 좋은,이다 각 프로젝트마다 이렇게하십시오.

include ':android-common' 
project(':android-common').projectDir = new File(rootDir, 'android-common') 

즉, 최상위 프로젝트 build.gradle 만 포함 시키되, gradle은이 점을 좋아하지 않으며 아래에있는 모듈을 찾지 않습니다.

답변

1

당신이 프로젝트의 위치를 ​​재정의하고 있기 때문에 당신이 쓸 수 있어야 :

include ':common-style' 
project(':common-style').projectDir = new File(rootDir, 'android-common/common-style') 

당신은 common을 포함 할 때 프로젝트의 경로와 일치하는 프로젝트 경로 (:common-style를) 할 수있다이 방법과 common-style. 이 Gradle 경로는 디스크상의 경로와 일치하지 않아도됩니다.

목표는 프로젝트 간 종속성이 항상 동일하게 보이도록 설정이 무엇이든 관계없이 해당 프로젝트에 일정한 경로가 있도록하는 것입니다.