我們有一個包含應用程序和庫項目的多項目設置。這樣的事情,android + gradle:多項目w /庫項目
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
下是獨立的。應用程序文件夾通過maven依賴項引用庫(所以libs需要首先被構建)。
我想定義一個構建腳本,在android-build
文件夾中,可以構建所有的應用程序和庫,作爲獎勵,可以加載到android studio中,讓所有項目可以一起訪問。
我在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')
都不錯,直到它到達android-common:common
,這取決於android-common:common-style
與compile project(...)
,
* 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'.
我真正喜歡的是到爲每個項目做這樣的事情,
include ':android-common'
project(':android-common').projectDir = new File(rootDir, 'android-common')
即,包括只有頂級項目build.gradle,但gradle不喜歡這個,並且沒有找到下面的任何模塊。