AndroidプロジェクトをAntからGradleに変換します。
私のEclipseワークスペースは非常にシンプルです:
Workspace
MyApp
MyApp-AndroidLibrary
MyAppにbuild.gradleファイルを追加するとき、Androidライブラリプロジェクト:
apply plugin: 'Android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':MyApp-AndroidLibrary')
}
Gradleビルドを実行すると、「パス ':MyApp-AndroidLibrary'のプロジェクトがルートプロジェクトで見つかりませんでした」というエラーが発生し、これをグーグルで検索して、ワークスペースに「settings.gradle」ファイルを設定する必要があることがわかりました追加するディレクトリ
include ":MyApp"
include ":MyApp-AndroidLibrary"
これは私にはあまりにも悪いようです、Gradleにsettings.gradleファイルが必要な理由、なぜ依存関係で定義したプロジェクトを抽出しないのですか?
そして、include
は本当に何を意味するのでしょうか?ワークスペースにanotoherアプリと他の共有ライブラリがある場合、構造は次のようになります。
Workspace
App1
App2
Library1(Used by App1 & App2)
Library2(Used only by App1)
Library3(Used only by App2)
Settings.gradleファイルは1つしかないため、すべてをsettings.gradleに追加する必要がありました。それはいい匂いがしません。
そして、はい、Library2をApp1の子ディレクトリに、Library3をApp2の子ディレクトリにするように構造を再編成できますが、Library1はどうですか?
これについて何かコメントはありますか?
いくつかの異なる質問をしています。ヒントを次に示します。
':MyApp-AndroidLibrary'
はlogicalプロジェクトパスであり、settings.gradle
で提供される情報に基づいて物理パスにマッピングされます。settings.gradle
で設定される任意のディレクトリ構造を持つことができます。必要な場合を除き、ディレクトリを移動する必要はありません。詳細については、 Gradle User Guide 、特にマルチプロジェクトビルドに関する章をご覧ください。