gradleの依存関係(Android studio)を現在のプロジェクト境界外の別のgradleプロジェクトに指定することは可能ですか?たとえば、次のような相対パスを使用して:
dependencies {
compile project('../../stdlib/dagger')
}
だから私はこのようなものです:
Androidアプリケーションがあります。構造は次のようになります。
そして、私はgradle Android 3つのサブモジュールを含むライブラリプロジェクト:
私が欲しいのは、短剣、utils、httpモジュールをMyAppプロジェクトにコンパイルすることです。
Stdlibライブラリモジュールは開発中です。MyAppの成長とともに成長します。したがって、少し変更を加えるたびにそれらをMavenリポジトリにプッシュしたくありません。
だから、何らかの形で他のgradleプロジェクトをリンクする可能性はありますか?一時的な解決策を探しています。ソースが安定したら、stdライブラリをmavenリポジトリにプッシュします。
また、回避策として、sourceSetを使用したソリューションが可能になります。また、stdlibへのシンボリックリンクであるMyAppにライブラリフォルダーを作成することも検討しましたが、期待どおりに動作しませんでした。
dependencies { compile project(':libraries:dagger') }
Gradleでそのような依存関係を解決する方法はありますか?
メインプロジェクトの「settings.gradle」ファイルを使用して、外部ルートプロジェクトモジュールを含めることができます。 gradleプロジェクトでもある必要があり、特定のAndroidビルド状況では、すべてのモジュールを「Androidライブラリ」プラグインプロジェクトとして設定する必要があります。
たとえば、「MyApp」プロジェクトのsettings.gradleでは、これを試すことができます。
include 'app'
include 'dagger'
project(':dagger').projectDir = new File('/Users/foo/workspace/stdlib/dagger')
'MyApp' build.gradleは、相対パスGradleの方法で 'dagger'モジュールの必要性を反映する必要があります。
dependencies {
compile project(':dagger')
}
以上です。必要なすべての外部モジュールでこの手順を繰り返すと、適切なGradleマルチプロジェクト構成ができます。