$ aws configure
Default region name
は CodeArtifact にライブラリ公開用のリポジトリを作成するリージョンにしましたDefault output format
は一旦 json にしておきました$ export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain <ドメイン> --domain-owner <AWS アカウント ID> --query authorizationToken --output text`
$ echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
build.gradle
に maven-publish プラグインと公開セクションを追記plugins {
id "com.android.library"
id "maven-publish"
}
android {
compileSdk 32
defaultConfig {
minSdk 21
targetSdk 32
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
testImplementation "junit:junit:4.13.2"
androidTestImplementation "androidx.test.ext:junit:1.1.3"
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
groupId = "<グループ ID>"
artifactId = "<アーティファクト ID>"
version = "<バージョン>"
from components.release
}
}
repositories {
maven {
url "https://<ドメイン>-<AWS アカウント ID>.d.codeartifact.<リージョン>.amazonaws.com/maven/<リポジトリ名>/"
credentials {
username "aws"
password System.env.CODEARTIFACT_AUTH_TOKEN
}
}
}
}
}
// 追記が必要なコードは CodeArtifact に作成したリポジトリの [接続手順の表示] で gradle を選択するとコピーすることができます
$ ./gradlew publish
settings.gradle
ファイルに Maven セクションを追加pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url "https://<ドメイン>-<AWS アカウント ID>.d.codeartifact.<リージョン>.amazonaws.com/maven/<リポジトリ名>/"
credentials {
username "aws"
password "$codeartifactToken"
}
}
}
}
// 追記が必要なコードは CodeArtifact に作成したリポジトリの [接続手順の表示] で gradle を選択するとコピーすることができます
build.gradle
に依存関係を取得するコードを追加plugins {
id "com.android.application"
}
android {
compileSdk 32
defaultConfig {
applicationId "jp.co.example"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation "<グループ ID>:<アーティファクト ID>:<バージョン>"
implementation "androidx.appcompat:appcompat:1.4.1"
implementation "com.google.android.material:material:1.6.0"
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
testImplementation "junit:junit:4.13.2"
androidTestImplementation "androidx.test.ext:junit:1.1.3"
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
}