Android Gradle プラグイン 3.6.0 以降には、Maven Publish Gradle プラグインのサポートが含まれています。これにより、ビルド アーティファクトを Apache Maven リポジトリに公開できます。Android Gradle プラグインは、アプリまたはライブラリ モジュール内のビルド バリアント アーティファクトごとにコンポーネントを作成します。これを使用して、Maven リポジトリへのパブリケーションをカスタマイズできます。
Android プラグインが作成するコンポーネントは、以下の表のとおり、モジュールがアプリケーションまたはライブラリ プラグインを使用するかどうかによって異なります。
Android Gradle プラグイン | パブリケーション アーティファクト | コンポーネント名 |
---|---|---|
com.android.library
|
AAR | components.variant
|
com.android.application
|
APK の ZIP、利用可能な ProGuard または R8 マッピング ファイル | components.variant_apk
|
com.android.application
|
Android App Bundle(AAB) | components.variant_aab
|
次のコード例は、AAR ライブラリについて、リリースおよびデバッグ用のビルド バリアントのパブリケーションを作成します。各パブリケーションは対応するコンポーネントを適用し、Maven 座標など、生成された POM の属性をカスタマイズします。
// Because the components are created only during the afterEvaluate phase, you must
// configure your publications using the afterEvaluate() lifecycle method.
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
// You can then customize attributes of the publication as shown below.
groupId = 'com.example.MyLibrary'
artifactId = 'final'
version = '1.0'
}
// Creates a Maven publication called “debug”.
debug(MavenPublication) {
// Applies the component for the debug build variant.
from components.debug
groupId = 'com.example.MyLibrary'
artifactId = 'final-debug'
version = '1.0'
}
}
}
アプリを ZIP 形式の APK または Android App Bundle(AAB)として公開するパブリケーションを作成するには、以下に示すように適切なコンポーネントを使用すればよいだけです。
afterEvaluate {
publishing {
publications {
paidRelease(MavenPublication) {
// The following applies a component to this publication
// which results in publishing an app bundle.
from components.paidRelease_aab
groupId = 'com.example.MyApp'
artifactId = 'paid-release-aab'
version = '1.0'
}
paidDebug(MavenPublication) {
// The following applies a component to this publication
// which results in publishing APKs in a ZIP file.
from components.paidDebug_apk
groupId = 'com.example.MyApp'
artifactId = 'paid-debug-apks'
version = '1.0'
}
}
}
パブリケーションを作成すると、Maven Publish プラグインによって公開タスクが作成されます。これを使用して、指定したリポジトリにアーティファクトを公開できます。