この状況がどれほど一般的かはわかりませんが、これが私にとってうまくいったことです。問題は次のとおりです。これは正気ですか、それとももっと良い方法がありますか?
tl;dr:
dependencies {
// remove trailing ':Lib'
ppath = project.path
ppath = ppath.substring(0, ppath.length() - 4)
compile project(ppath + ":jsoup:Lib")
}
メイン プロジェクト OpenKeychain ( https://github.com/open-keychain/open-keychain )
|-Git サブモジュール KeybaseLib ( https://github.com/timbray/KeybaseLib )
|- Git サブモジュール jsoup ( https://github. com/timbray/jsoup )
ディレクトリ構造は、Android Studio と Gradle の 3 つのプロジェクトすべてに対して設定されています。これは、プロジェクト ルートの下に固有の名前のディレクトリがあり (ライブラリ タイプのプロジェクトには「Lib」を使用するのが好きです)、ソースは root/Lib/src/main/... から始まることを意味します。
open-keychain
|- settings.gradle [1]
|- OpenKeychain
|- build.gradle [2]
|- extern
|- KeybaseLib
|- settings.gradle [3]
|- Lib
|- build.gradle [4]
|- jsoup
OK、問題は、[1]、[2]、[3]、および [4] に何が入るかということです。これにより、open-keychain ルートと KeybaseLib ルートの両方から KeybaseLib と jsoup を gradle-build できますか?
[1]
include ':extern:KeybaseLib:Lib'
include ':extern:KeybaseLib:jsoup:Lib'
[2]
dependencies {
compile project(':extern:KeybaseLib:Lib')
...
}
[3]
include 'Lib'
include ':jsoup:Lib'
[4]
dependencies {
// remove trailing ':Lib'
ppath = project.path
ppath = ppath.substring(0, ppath.length() - 4)
compile project(ppath + ":jsoup:Lib")
}