AndroidプロジェクトをAntからGradleに変換しようとしています。Gradleにsettings.gradleファイルが必要なのはなぜですか?
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':MyApp-AndroidLibrary')
}
私はGradleのビルドを実行します。私はのMyAppにbuild.gradleファイルを追加すると
Workspace
MyApp
MyApp-AndroidLibrary
が、私は私のAndroidライブラリプロジェクトを参照したい:
私のEclipseワークスペースは非常に簡単です「パス付きプロジェクト: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)
のみONE settings.gradleファイルがあるので、私はsettings.gradleにそれらのすべてを追加する必要がありました。それは良いにおいがしません。
はい、私は、図書館2をApp1の子ディレクトリにし、図書館3をApp2の子ディレクトリにするように再構成することができますが、Library1はどうですか?
これに関するコメント?
多くのユースケースをより簡単にするデフォルト動作(これはほとんどの場合と同じディレクトリ構造に一致します)がない理由はまだわかりません。 – yhpark
Gradleは実際に 'settings.gradle'の情報をプロジェクトの依存関係を特定するのに使用せず、' build.gradle'ファイルに定義されているプロジェクトの依存関係を論理パスから物理パスにマップするだけです。 – sschuberth
'settings.gradle'の情報は、このビルドの一部であるサブプロジェクト、それらの論理パスと物理パス、ビルドスクリプトの名前付け方法などをGradleに伝えます。Gradleには、サブプロジェクトはあります。 –