Maven Publish PluginでAndroid Libraryのソースコードを公開する
概要
Maven Publish Plugin で Android Library のソースコードを添付する方法です。
build.gradle.kts(差分のみ)
以下、既に Maven Publish Plugin を利用している場合向けの、差分のみを示したコードです。
※ 各値は自身の環境に合わせてください
build.gradle.kts
tasks {
val androidSourcesJar by creating(Jar::class) {
archiveClassifier.set("sources")
from(android.sourceSets["main"].java.srcDirs)
}
}
afterEvaluate {
publishing {
publications {
create<MavenPublication>("maven") {
artifact(tasks["androidSourcesJar"])
}
}
}
}
build.gradle.kts
build.gradle.kts の全体像のサンプルです。
plugins {
id("com.android.library")
kotlin("android")
id("kotlin-android-extensions")
kotlin("kapt")
`maven-publish`
}
android {
compileSdkVersion(29)
defaultConfig {
minSdkVersion(23)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
consumerProguardFiles("consumer-rules.pro")
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
buildFeatures {
dataBinding = true
}
kotlinOptions {
jvmTarget = "1.8"
}
}
tasks {
val androidSourcesJar by creating(Jar::class) {
archiveClassifier.set("sources")
from(android.sourceSets["main"].java.srcDirs)
}
}
dependencies {
implementation(project(":kotlin"))
implementation("androidx.constraintlayout:constraintlayout:1.1.3")
}
afterEvaluate {
publishing {
publications {
create<MavenPublication>("maven") {
from(components["release"])
artifact(tasks["androidSourcesJar"])
groupId = "com.example"
artifactId = "lib-android"
version = "0.0.1-SNAPSHOT"
}
}
}
}
実行
◆ mavenLocalにpublishする
./gradlew publishMavenPublicationToMavenLocal
◆ 任意のフォルダにpublishする
任意のフォルダを指定する差分
afterEvaluate {
publishing {
repositories.maven {
// $projectDir だとモジュールの build 直下。
// $rootDir なら root モジュール直下
url = uri("$projectDir/repo")
}
}
./gradlew publishMavenPublicationToMavenRepository
./gradlew publishMavenPublicationToMavenLocal
任意のフォルダを指定する差分
afterEvaluate {
publishing {
repositories.maven {
// $projectDir だとモジュールの build 直下。
// $rootDir なら root モジュール直下
url = uri("$projectDir/repo")
}
}
./gradlew publishMavenPublicationToMavenRepository
※ ./gradlew publish
を利用すると余計なファイル群が生成されてしまって原因調査にちょっとハマった、、、。
Author And Source
この問題について(Maven Publish PluginでAndroid Libraryのソースコードを公開する), 我々は、より多くの情報をここで見つけました https://qiita.com/beyondseeker/items/e41c1219fc7aff15d2cc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .