基本的にAPIのライブラリを作成し、外部開発者の作業を楽にします。
そこで、新しいライブラリプロジェクトを作成し、Retrofitと他のライブラリを依存関係として配置しました。
dependencies {
compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.1'
compile 'com.squareup.retrofit2:converter-gson:2.0.1'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
ビルドすると、aar
ファイルが生成されます。
ただし、aar
ファイルをlibs
ディレクトリに配置して依存関係として設定する場合、ユーザーのbuild.gradle
ファイルにも同じ依存関係を設定する必要があります。ライブラリから取得する必要がありますか?
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name: 'ourlibrary', ext: 'aar') {
transitive = true;
}
}
transitive = true
を機能させる方法は?
aarファイルには、ネストされた(または transitive )依存関係が含まれていませんおよびライブラリで使用される依存関係を記述するpomファイルがありません。
つまり、flatDir
リポジトリを使用してaarファイルをインポートする場合は、プロジェクトでも依存関係を指定する必要があります。
あなたの場合、transitive=true
を追加しても、上記の理由で問題は解決しません。
mavenリポジトリを使用する必要があります(プライベートまたはパブリックmavenリポジトリでライブラリを公開する必要があります)、同じ問題は発生しません。
この場合、gradleは依存関係リストを含むpomファイルを使用して依存関係をダウンロードします。