From 7c862b15f137c583c27087f48dc9c1df25876323 Mon Sep 17 00:00:00 2001 From: OHMAE Ryosuke Date: Sun, 7 Feb 2021 12:57:07 +0900 Subject: [PATCH] =?UTF-8?q?=E2=99=BBorganize=20build.gradle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 3 ++ build.gradle.kts | 4 +- buildSrc/build.gradle.kts | 2 +- .../main/java/build/{internal => }/Bintray.kt | 5 +-- .../src/main/java/build/CommonSettings.kt | 16 -------- .../build/{internal => }/DependencyUpdates.kt | 4 +- .../java/build/{internal => }/Publishing.kt | 40 ++++++------------- .../build/{internal => }/UploadArchives.kt | 5 +-- .../main/java/build/internal/SourcesJar.kt | 28 ------------- lib/build.gradle.kts | 16 +++++++- sample/build.gradle.kts | 10 ++--- 11 files changed, 44 insertions(+), 89 deletions(-) rename buildSrc/src/main/java/build/{internal => }/Bintray.kt (93%) delete mode 100644 buildSrc/src/main/java/build/CommonSettings.kt rename buildSrc/src/main/java/build/{internal => }/DependencyUpdates.kt (88%) rename buildSrc/src/main/java/build/{internal => }/Publishing.kt (75%) rename buildSrc/src/main/java/build/{internal => }/UploadArchives.kt (94%) delete mode 100644 buildSrc/src/main/java/build/internal/SourcesJar.kt diff --git a/.editorconfig b/.editorconfig index c7e94fe..be7fd6d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,5 +10,8 @@ insert_final_newline = true [*.json] indent_size = 2 +[*.md] +trim_trailing_whitespace = false + [{*.yml,*.yaml}] indent_size = 2 diff --git a/build.gradle.kts b/build.gradle.kts index cbf80a9..fde1cb9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,9 +5,9 @@ buildscript { } dependencies { classpath("com.android.tools.build:gradle:4.1.2") - classpath(kotlin("gradle-plugin", version = "1.4.21")) + classpath(kotlin("gradle-plugin", version = "1.4.30")) classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.4.20") - classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.3.2") + classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.3.3") classpath("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5") classpath("com.github.ben-manes:gradle-versions-plugin:0.36.0") diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 59843b4..885d7de 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - kotlin("jvm") version "1.4.21" + kotlin("jvm") version "1.4.30" `kotlin-dsl` } diff --git a/buildSrc/src/main/java/build/internal/Bintray.kt b/buildSrc/src/main/java/build/Bintray.kt similarity index 93% rename from buildSrc/src/main/java/build/internal/Bintray.kt rename to buildSrc/src/main/java/build/Bintray.kt index 6ba3be3..095d63b 100644 --- a/buildSrc/src/main/java/build/internal/Bintray.kt +++ b/buildSrc/src/main/java/build/Bintray.kt @@ -1,6 +1,5 @@ -package build.internal +package build -import build.ProjectProperties import com.jfrog.bintray.gradle.BintrayExtension import org.gradle.api.Project import org.gradle.api.internal.HasConvention @@ -15,7 +14,7 @@ private fun Project.bintray(configure: BintrayExtension.() -> Unit): Unit = private val Project.base: BasePluginConvention get() = ((this as? Project)?.convention ?: (this as HasConvention).convention).getPluginByName("base") -internal fun Project.bintraySettings() { +fun Project.bintraySettings() { bintray { user = project.findProperty("bintray_user") as? String ?: "" key = project.findProperty("bintray_key") as? String ?: "" diff --git a/buildSrc/src/main/java/build/CommonSettings.kt b/buildSrc/src/main/java/build/CommonSettings.kt deleted file mode 100644 index d4dcfca..0000000 --- a/buildSrc/src/main/java/build/CommonSettings.kt +++ /dev/null @@ -1,16 +0,0 @@ -package build - -import build.internal.* -import org.gradle.api.Project - -fun Project.commonSettings() { - sourcesJarSettings() - uploadArchivesSettings() - publishingSettings() - bintraySettings() - dependencyUpdatesSettings() -} - -fun Project.dependencyUpdates() { - dependencyUpdatesSettings() -} diff --git a/buildSrc/src/main/java/build/internal/DependencyUpdates.kt b/buildSrc/src/main/java/build/DependencyUpdates.kt similarity index 88% rename from buildSrc/src/main/java/build/internal/DependencyUpdates.kt rename to buildSrc/src/main/java/build/DependencyUpdates.kt index 6449914..bda2b48 100644 --- a/buildSrc/src/main/java/build/internal/DependencyUpdates.kt +++ b/buildSrc/src/main/java/build/DependencyUpdates.kt @@ -1,10 +1,10 @@ -package build.internal +package build import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import org.gradle.api.Project import org.gradle.kotlin.dsl.named -internal fun Project.dependencyUpdatesSettings() { +fun Project.dependencyUpdatesSettings() { tasks.named("dependencyUpdates").configure { rejectVersionIf { !isStable(candidate.version) } } diff --git a/buildSrc/src/main/java/build/internal/Publishing.kt b/buildSrc/src/main/java/build/Publishing.kt similarity index 75% rename from buildSrc/src/main/java/build/internal/Publishing.kt rename to buildSrc/src/main/java/build/Publishing.kt index 4f41b26..d1fc8d0 100644 --- a/buildSrc/src/main/java/build/internal/Publishing.kt +++ b/buildSrc/src/main/java/build/Publishing.kt @@ -1,6 +1,5 @@ -package build.internal +package build -import build.ProjectProperties import groovy.util.Node import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.NamedDomainObjectProvider @@ -29,25 +28,27 @@ private val NamedDomainObjectContainer.api: NamedDomainObjectProv private val NamedDomainObjectContainer.implementation: NamedDomainObjectProvider get() = named("implementation") -internal fun Project.publishingSettings() { +fun Project.publishingSettings() { publishing { publications { create("bintray") { artifact("$buildDir/outputs/aar/${base.archivesBaseName}-release.aar") + artifact(tasks["sourcesJar"]) groupId = ProjectProperties.groupId artifactId = base.archivesBaseName version = ProjectProperties.versionName - artifact(tasks["sourcesJar"]) pom.withXml { val node = asNode() - val licenses = node.appendNode("licenses") - appendLicense( - licenses, - "The MIT License", - "https://opensource.org/licenses/MIT", - "repo" - ) - appendScm(node, ProjectProperties.Url.scm, ProjectProperties.Url.github) + node.appendNode("licenses").appendNode("license").apply { + appendNode("name", "The MIT License") + appendNode("url", "https://opensource.org/licenses/MIT") + appendNode("distribution", "repo") + } + node.appendNode("scm").apply { + appendNode("connection", ProjectProperties.Url.scm) + appendNode("developerConnection", ProjectProperties.Url.scm) + appendNode("url", ProjectProperties.Url.github) + } val dependencies = node.appendNode("dependencies") configurations.api.get().dependencies.forEach { appendDependency( @@ -73,21 +74,6 @@ internal fun Project.publishingSettings() { } } -private fun appendLicense(parentNode: Node, name: String, url: String, distribution: String) { - parentNode.appendNode("license").apply { - appendNode("name", name) - appendNode("url", url) - appendNode("distribution", distribution) - } -} - -private fun appendScm(parentNode: Node, connection: String, url: String) { - parentNode.appendNode("scm").apply { - appendNode("connection", connection) - appendNode("url", url) - } -} - private fun appendDependency( parentNode: Node, groupId: String, diff --git a/buildSrc/src/main/java/build/internal/UploadArchives.kt b/buildSrc/src/main/java/build/UploadArchives.kt similarity index 94% rename from buildSrc/src/main/java/build/internal/UploadArchives.kt rename to buildSrc/src/main/java/build/UploadArchives.kt index 845aa18..a9d6947 100644 --- a/buildSrc/src/main/java/build/internal/UploadArchives.kt +++ b/buildSrc/src/main/java/build/UploadArchives.kt @@ -1,6 +1,5 @@ -package build.internal +package build -import build.ProjectProperties import org.gradle.api.Project import org.gradle.api.internal.HasConvention import org.gradle.api.plugins.BasePluginConvention @@ -12,7 +11,7 @@ import org.gradle.kotlin.dsl.withGroovyBuilder private val Project.base: BasePluginConvention get() = ((this as? Project)?.convention ?: (this as HasConvention).convention).getPluginByName("base") -internal fun Project.uploadArchivesSettings() { +fun Project.uploadArchivesSettings() { tasks.named("uploadArchives") { repositories.withGroovyBuilder { "mavenDeployer" { diff --git a/buildSrc/src/main/java/build/internal/SourcesJar.kt b/buildSrc/src/main/java/build/internal/SourcesJar.kt deleted file mode 100644 index b8f83d5..0000000 --- a/buildSrc/src/main/java/build/internal/SourcesJar.kt +++ /dev/null @@ -1,28 +0,0 @@ -package build.internal - -import com.android.build.gradle.LibraryExtension -import org.gradle.api.Project -import org.gradle.api.artifacts.PublishArtifact -import org.gradle.api.artifacts.dsl.ArtifactHandler -import org.gradle.api.plugins.ExtensionAware -import org.gradle.api.tasks.bundling.Jar -import org.gradle.kotlin.dsl.create -import org.gradle.kotlin.dsl.get -import org.gradle.kotlin.dsl.named - -private val Project.android: LibraryExtension - get() = (this as ExtensionAware).extensions.getByName("android") as LibraryExtension - -private fun ArtifactHandler.archives(artifactNotation: Any): PublishArtifact = - add("archives", artifactNotation) - -internal fun Project.sourcesJarSettings() { - tasks.create("sourcesJar", Jar::class) { - archiveClassifier.set("sources") - from(android.sourceSets["main"].java.srcDirs) - } - - artifacts { - archives(tasks.named("sourcesJar")) - } -} diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index a33fa92..f2e51d9 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -47,7 +47,7 @@ dependencies { implementation(kotlin("stdlib")) implementation("androidx.appcompat:appcompat:1.2.0") implementation("androidx.core:core-ktx:1.3.2") - implementation("com.google.android.material:material:1.2.1") + implementation("com.google.android.material:material:1.3.0") testImplementation("junit:junit:4.13.1") } @@ -60,4 +60,16 @@ tasks.named("dokkaHtml") { } } -commonSettings() +tasks.create("sourcesJar", Jar::class) { + archiveClassifier.set("sources") + from(android.sourceSets["main"].java.srcDirs) +} + +artifacts { + archives(tasks.named("sourcesJar")) +} + +uploadArchivesSettings() +publishingSettings() +bintraySettings() +dependencyUpdatesSettings() diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index 03e017d..0206dcd 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -42,11 +42,11 @@ dependencies { implementation(kotlin("stdlib")) implementation("androidx.appcompat:appcompat:1.2.0") implementation("androidx.constraintlayout:constraintlayout:2.0.4") - implementation("com.google.android.material:material:1.2.1") - implementation("androidx.navigation:navigation-fragment-ktx:2.3.2") - implementation("androidx.navigation:navigation-ui-ktx:2.3.2") - debugImplementation("com.squareup.leakcanary:leakcanary-android:2.5") + implementation("com.google.android.material:material:1.3.0") + implementation("androidx.navigation:navigation-fragment-ktx:2.3.3") + implementation("androidx.navigation:navigation-ui-ktx:2.3.3") + debugImplementation("com.squareup.leakcanary:leakcanary-android:2.6") testImplementation("junit:junit:4.13.1") } -dependencyUpdates() +dependencyUpdatesSettings()