From df561f3e5ae0aed2a60282520d07ec0bbadd944c Mon Sep 17 00:00:00 2001 From: limuyang Date: Tue, 30 May 2023 10:51:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20gradle=20publish?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/build.gradle | 63 --------------- library/build.gradle.kts | 161 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+), 63 deletions(-) delete mode 100644 library/build.gradle create mode 100644 library/build.gradle.kts diff --git a/library/build.gradle b/library/build.gradle deleted file mode 100644 index f2c00d17d..000000000 --- a/library/build.gradle +++ /dev/null @@ -1,63 +0,0 @@ -plugins { - id("com.android.library") - id("kotlin-android") - id 'maven-publish' -} - -var verName = '3.0.13' - -group = 'com.github.CymChad' -version = verName - -android { - compileSdkVersion 30 - - defaultConfig { - minSdkVersion 14 - } - buildTypes { - release { - consumerProguardFiles 'proguard-rules.pro' - } - debug { - consumerProguardFiles 'proguard-rules.pro' - } - } - compileOptions { - kotlinOptions.freeCompilerArgs += ['-module-name', "com.github.CymChad.brvah", "-Xjvm-default=all"] - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } - publishing { - singleVariant('release') { - withSourcesJar() - } - } -} - - -dependencies { - implementation 'androidx.annotation:annotation:1.5.0' - implementation 'androidx.databinding:databinding-runtime:8.0.1' - implementation 'androidx.recyclerview:recyclerview:1.2.1' -} - -afterEvaluate { - publishing { - publications { - // Creates a Maven publication called "release". - release(MavenPublication) { - from components.release - groupId = 'com.github.CymChad' - artifactId = 'BaseRecyclerViewAdapterHelper' - version = verName - } - } - } -} \ No newline at end of file diff --git a/library/build.gradle.kts b/library/build.gradle.kts new file mode 100644 index 000000000..4f879cd4d --- /dev/null +++ b/library/build.gradle.kts @@ -0,0 +1,161 @@ +import java.io.FileInputStream +import java.io.InputStreamReader +import java.util.Properties + +plugins { + id("com.android.library") + kotlin("android") + `maven-publish` + signing +} + +val versionName = "3.0.13" + + +android { + compileSdk = 31 + + defaultConfig { + minSdk = 14 + + consumerProguardFiles("proguard-rules.pro") + } + + + buildTypes { + getByName("release") { + consumerProguardFiles("proguard-rules.pro") + } + } + + + compileOptions { + kotlinOptions.freeCompilerArgs = ArrayList().apply { + add("-module-name") + add("com.github.CymChad.brvah") + add("-Xjvm-default=all") + } + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + namespace = "com.chad.library" + + + publishing { + singleVariant("release") { + // if you don't want sources/javadoc, remove these lines + withSourcesJar() + withJavadocJar() + } + } +} + + +dependencies { + implementation("androidx.annotation:annotation:1.5.0") + + implementation("androidx.recyclerview:recyclerview:1.2.1") + + implementation("androidx.databinding:databinding-runtime:8.0.0") +} + + +var signingKeyId = ""//签名的密钥后8位 +var signingPassword = ""//签名设置的密码 +var secretKeyRingFile = ""//生成的secring.gpg文件目录 +var ossrhUsername = ""//sonatype用户名 +var ossrhPassword = "" //sonatype密码 + + +val localProperties: File = project.rootProject.file("local.properties") + +if (localProperties.exists()) { + println("Found secret props file, loading props") + val properties = Properties() + + InputStreamReader(FileInputStream(localProperties), Charsets.UTF_8).use { reader -> + properties.load(reader) + } + signingKeyId = properties.getProperty("signing.keyId") + signingPassword = properties.getProperty("signing.password") + secretKeyRingFile = properties.getProperty("signing.secretKeyRingFile") + ossrhUsername = properties.getProperty("ossrhUsername") + ossrhPassword = properties.getProperty("ossrhPassword") + +} else { + println("No props file, loading env vars") +} + +afterEvaluate { + + publishing { + publications { + create("release") { + from(components.findByName("release")) + groupId = "io.github.cymchad" + artifactId = "BaseRecyclerViewAdapterHelper" + version = versionName + + pom { + name.value("BaseRecyclerViewAdapterHelper") + description.value("Powerful and flexible RecyclerAdapter") + url.value("https://github.com/CymChad/BaseRecyclerViewAdapterHelper") + + licenses { + license { + //协议类型 + name.value("The MIT License") + url.value("https://github.com/CymChad/BaseRecyclerViewAdapterHelper/blob/master/LICENSE") + } + } + + developers { + developer { + id.value("limuyang2") + name.value("limuyang") + email.value("limuyang2@hotmail.com") + } + } + + scm { + connection.value("scm:git@github.com/CymChad/BaseRecyclerViewAdapterHelper.git") + developerConnection.value("scm:git@github.com/CymChad/BaseRecyclerViewAdapterHelper.git") + url.value("https://github.com/CymChad/BaseRecyclerViewAdapterHelper") + } + } + } + + } + + repositories { + maven { + url = uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") + credentials { + username = ossrhUsername + password = ossrhPassword + } + } + } + + } + +} + +gradle.taskGraph.whenReady { + if (allTasks.any { it is Sign }) { + + allprojects { + extra["signing.keyId"] = signingKeyId + extra["signing.secretKeyRingFile"] = secretKeyRingFile + extra["signing.password"] = signingPassword + } + } +} + +signing { + sign(publishing.publications) +} +