(メモ) Android Libraryのパブリッシュは"publishing"を使う

仕事柄、AndroidでもiOSでもモジュールバイナリを作成して配布する機会がそこそこあります。

Androidの場合、大抵はCIからgradle taskを叩いて行いますので差分に気づく機会が少ないのですが、実はuploadArchivespublishingでは.pomに記述される<scope>が異なります。

サンプル差分

uploadArchivesの場合

一律compileが指定されます。これはAndroid Gradle Plugin 2.x系では問題になりませんが、3.x以降ではapiimplementationで依存関係の種別を切り替えられるので、場合によっては利用者となるアプリモジュールで不都合があるかもしれません。

publishingの場合

scope自体が指定されません。
もし指定したい場合は↓のようになります。

type scope
implementation runtime
api compile

こんな感じで指定すれば書き出されます。

※以前にこの変更をしたときは、scopeも指定された気がしますが、もう転職して該当のbuild.gradleにアクセスできないので分かりません(^^;;