Skip to content

Commit

Permalink
♻organize build.gradle
Browse files Browse the repository at this point in the history
  • Loading branch information
ohmae committed Feb 7, 2021
1 parent f249043 commit 7c862b1
Show file tree
Hide file tree
Showing 11 changed files with 44 additions and 89 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,8 @@ insert_final_newline = true
[*.json]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[{*.yml,*.yaml}]
indent_size = 2
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
kotlin("jvm") version "1.4.21"
kotlin("jvm") version "1.4.30"
`kotlin-dsl`
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 ?: ""
Expand Down
16 changes: 0 additions & 16 deletions buildSrc/src/main/java/build/CommonSettings.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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<DependencyUpdatesTask>("dependencyUpdates").configure {
rejectVersionIf { !isStable(candidate.version) }
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -29,25 +28,27 @@ private val NamedDomainObjectContainer<Configuration>.api: NamedDomainObjectProv
private val NamedDomainObjectContainer<Configuration>.implementation: NamedDomainObjectProvider<Configuration>
get() = named<Configuration>("implementation")

internal fun Project.publishingSettings() {
fun Project.publishingSettings() {
publishing {
publications {
create<MavenPublication>("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(
Expand All @@ -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,
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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<Upload>("uploadArchives") {
repositories.withGroovyBuilder {
"mavenDeployer" {
Expand Down
28 changes: 0 additions & 28 deletions buildSrc/src/main/java/build/internal/SourcesJar.kt

This file was deleted.

16 changes: 14 additions & 2 deletions lib/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}

Expand All @@ -60,4 +60,16 @@ tasks.named<DokkaTask>("dokkaHtml") {
}
}

commonSettings()
tasks.create("sourcesJar", Jar::class) {
archiveClassifier.set("sources")
from(android.sourceSets["main"].java.srcDirs)
}

artifacts {
archives(tasks.named<Jar>("sourcesJar"))
}

uploadArchivesSettings()
publishingSettings()
bintraySettings()
dependencyUpdatesSettings()
10 changes: 5 additions & 5 deletions sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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()

0 comments on commit 7c862b1

Please sign in to comment.