Skip to content

Commit 6e01386

Browse files
committed
chore: migrate to buildSrc
1 parent 55848ba commit 6e01386

File tree

9 files changed

+199
-209
lines changed

9 files changed

+199
-209
lines changed

build.gradle.kts

+1-109
Original file line numberDiff line numberDiff line change
@@ -1,109 +1 @@
1-
plugins {
2-
idea
3-
wrapper
4-
alias(libs.plugins.semver)
5-
alias(libs.plugins.benmanes)
6-
alias(libs.plugins.spotless)
7-
8-
// Workaround for vanniktech publish plugin
9-
`kotlin-dsl`
10-
alias(libs.plugins.vanniktech.publish) apply false
11-
}
12-
13-
gradle.projectsEvaluated { logger.lifecycle("=== Projects Configuration Completed ===") }
14-
15-
idea {
16-
module {
17-
isDownloadJavadoc = true
18-
isDownloadSources = true
19-
}
20-
project.vcs = "Git"
21-
}
22-
23-
spotless {
24-
java {
25-
// googleJavaFormat(libs.versions.google.javaformat.get())
26-
palantirJavaFormat(libs.versions.palantir.javaformat.get()).formatJavadoc(true)
27-
target("**/*.java")
28-
targetExclude("**/build/**")
29-
}
30-
// if(plugins.hasPlugin(JavaPlugin::class.java)){ }
31-
32-
val ktfmtVersion = libs.versions.ktfmt.get()
33-
kotlin {
34-
ktfmt(ktfmtVersion)
35-
target("**/*.kt")
36-
targetExclude("**/build/**")
37-
trimTrailingWhitespace()
38-
endWithNewline()
39-
// licenseHeader(rootProject.file("gradle/license-header.txt"))
40-
}
41-
42-
kotlinGradle {
43-
ktfmt(ktfmtVersion)
44-
target("**/*.gradle.kts")
45-
targetExclude("**/build/**")
46-
trimTrailingWhitespace()
47-
endWithNewline()
48-
}
49-
50-
format("misc") {
51-
target("**/*.md", "**/.gitignore", "**/.kte")
52-
targetExclude("**/build/**")
53-
trimTrailingWhitespace()
54-
indentWithSpaces(2)
55-
endWithNewline()
56-
}
57-
}
58-
59-
tasks {
60-
// Dependency version updates
61-
dependencyUpdates {
62-
checkConstraints = true
63-
gradle.includedBuilds.forEach { incBuild ->
64-
incBuild.projectDir
65-
.resolve("build.gradle.kts")
66-
.takeIf { it.exists() }
67-
?.let { dependsOn(incBuild.task(":dependencyUpdates")) }
68-
}
69-
}
70-
71-
spotlessApply {
72-
gradle.includedBuilds.forEach { incBuild ->
73-
incBuild.projectDir
74-
.resolve("build.gradle.kts")
75-
.takeIf { it.exists() }
76-
?.let { dependsOn(incBuild.task(":spotlessApply")) }
77-
}
78-
}
79-
80-
build {
81-
gradle.includedBuilds.forEach { incBuild ->
82-
incBuild.projectDir
83-
.resolve("build.gradle.kts")
84-
.takeIf { it.exists() }
85-
?.let { dependsOn(incBuild.task(":build")) }
86-
}
87-
}
88-
89-
register("cleanAll") {
90-
description = "Clean all projects including composite builds"
91-
group = LifecycleBasePlugin.CLEAN_TASK_NAME
92-
93-
dependsOn(gradle.includedBuilds.map { it.task(":cleanAll") })
94-
allprojects.mapNotNull { it.tasks.findByName("clean") }.forEach { dependsOn(it) }
95-
}
96-
97-
register("v") {
98-
description = "Print the ${rootProject.name} version!"
99-
doLast { println(rootProject.version.toString()) }
100-
}
101-
102-
wrapper {
103-
gradleVersion = libs.versions.gradle.asProvider().get()
104-
distributionType = Wrapper.DistributionType.ALL
105-
// distributionUrl = "${Repo.GRADLE_DISTRO}/gradle-$gradleVersion-bin.zip"
106-
}
107-
108-
defaultTasks("clean", "tasks", "--all")
109-
}
1+
plugins { plugins.root }

buildSrc/build.gradle.kts

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
@file:Suppress("UnstableApiUsage")
2+
3+
import org.gradle.kotlin.dsl.support.expectedKotlinDslPluginsVersion
4+
5+
plugins {
6+
`kotlin-dsl`
7+
embeddedKotlin("plugin.serialization")
8+
}
9+
10+
dependencies {
11+
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
12+
implementation(libs.build.spotless.plugin)
13+
implementation(libs.build.shadow.plugin)
14+
implementation(libs.build.semver.plugin)
15+
implementation(libs.build.benmanesversions)
16+
implementation(libs.build.vanniktech.publish)
17+
18+
// For using `kotlin-dsl` in pre-compiled script plugins
19+
implementation("${libs.build.kotlin.dsl.get().module}:${expectedKotlinDslPluginsVersion}")
20+
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
@file:Suppress("UnstableApiUsage")
2+
13
dependencyResolutionManagement {
4+
repositories {
5+
mavenCentral()
6+
gradlePluginPortal()
7+
}
28
versionCatalogs { create("libs") { from(files("../gradle/libs.versions.toml")) } }
39
}
File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package plugins
2+
3+
import com.vanniktech.maven.publish.SonatypeHost
4+
import java.time.Year
5+
import kotlin.text.lowercase
6+
import libs
7+
8+
plugins {
9+
// https://github.com/vanniktech/gradle-maven-publish-plugin/issues/846
10+
id("org.gradle.kotlin.kotlin-dsl")
11+
id("com.vanniktech.maven.publish")
12+
id("com.javiersc.semver")
13+
}
14+
15+
group = libs.versions.group.get()
16+
17+
mavenPublishing {
18+
publishToMavenCentral(host = SonatypeHost.CENTRAL_PORTAL, automaticRelease = false)
19+
20+
signAllPublications()
21+
22+
pom {
23+
val githubUser = libs.versions.dev.name.get().lowercase()
24+
val githubRepo = "https://github.com/${githubUser}/${rootProject.name}"
25+
26+
name = provider { "${project.group}:${project.name}" }
27+
description = provider { project.description }
28+
inceptionYear = Year.now().toString()
29+
url = githubRepo
30+
31+
developers {
32+
developer {
33+
name = libs.versions.dev.name
34+
email = libs.versions.dev.email
35+
organization = libs.versions.org.name
36+
organizationUrl = libs.versions.org.url
37+
}
38+
}
39+
40+
licenses {
41+
license {
42+
name = "The Apache Software License, Version 2.0"
43+
url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
44+
}
45+
}
46+
47+
scm {
48+
url = githubRepo
49+
connection = "scm:git:$githubRepo.git"
50+
developerConnection = "scm:git:$githubRepo.git"
51+
}
52+
}
53+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
package plugins
2+
3+
import libs
4+
5+
plugins {
6+
idea
7+
wrapper
8+
id("com.github.ben-manes.versions")
9+
id("com.javiersc.semver")
10+
id("com.diffplug.spotless")
11+
}
12+
13+
group = libs.versions.group.get()
14+
15+
gradle.projectsEvaluated { logger.lifecycle("=== Projects Configuration Completed ===") }
16+
17+
idea {
18+
module {
19+
isDownloadJavadoc = true
20+
isDownloadSources = true
21+
}
22+
project.vcs = "Git"
23+
}
24+
25+
spotless {
26+
java {
27+
// googleJavaFormat(libs.versions.google.javaformat.get())
28+
palantirJavaFormat(libs.versions.palantir.javaformat.get()).formatJavadoc(true)
29+
target("**/*.java")
30+
targetExclude("**/build/**")
31+
}
32+
33+
// if(plugins.hasPlugin(JavaPlugin::class)){ }
34+
35+
val ktfmtVersion = libs.versions.ktfmt.get()
36+
kotlin {
37+
ktfmt(ktfmtVersion)
38+
target("**/*.kt")
39+
targetExclude("**/build/**")
40+
trimTrailingWhitespace()
41+
endWithNewline()
42+
// licenseHeader(rootProject.file("gradle/license-header.txt"))
43+
}
44+
45+
kotlinGradle {
46+
ktfmt(ktfmtVersion)
47+
target("**/*.gradle.kts")
48+
targetExclude("**/build/**")
49+
trimTrailingWhitespace()
50+
endWithNewline()
51+
}
52+
53+
format("misc") {
54+
target("**/*.md", "**/.gitignore", "**/.kte")
55+
targetExclude("**/build/**")
56+
trimTrailingWhitespace()
57+
indentWithSpaces(2)
58+
endWithNewline()
59+
}
60+
}
61+
62+
tasks {
63+
64+
// Dependency version updates
65+
dependencyUpdates {
66+
checkConstraints = true
67+
gradle.includedBuilds.forEach { incBuild ->
68+
incBuild.projectDir
69+
.resolve("build.gradle.kts")
70+
.takeIf { it.exists() }
71+
?.let { dependsOn(incBuild.task(":dependencyUpdates")) }
72+
}
73+
}
74+
75+
spotlessApply {
76+
gradle.includedBuilds.forEach { incBuild ->
77+
incBuild.projectDir
78+
.resolve("build.gradle.kts")
79+
.takeIf { it.exists() }
80+
?.let { dependsOn(incBuild.task(":spotlessApply")) }
81+
}
82+
}
83+
84+
build {
85+
gradle.includedBuilds.forEach { incBuild ->
86+
incBuild.projectDir
87+
.resolve("build.gradle.kts")
88+
.takeIf { it.exists() }
89+
?.let { dependsOn(incBuild.task(":build")) }
90+
}
91+
}
92+
93+
register("cleanAll") {
94+
description = "Clean all projects including composite builds"
95+
group = LifecycleBasePlugin.CLEAN_TASK_NAME
96+
97+
dependsOn(gradle.includedBuilds.map { it.task(":cleanAll") })
98+
allprojects.mapNotNull { it.tasks.findByName("clean") }.forEach { dependsOn(it) }
99+
}
100+
101+
register("v") {
102+
description = "Print the ${rootProject.name} version!"
103+
doLast { println(rootProject.version.toString()) }
104+
}
105+
106+
wrapper {
107+
gradleVersion = libs.versions.gradle.asProvider().get()
108+
distributionType = Wrapper.DistributionType.ALL
109+
// distributionUrl = "${Repo.GRADLE_DISTRO}/gradle-$gradleVersion-bin.zip"
110+
}
111+
112+
defaultTasks("clean", "tasks", "--all")
113+
}

catalog/build.gradle.kts

+1-45
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,8 @@
1-
import com.vanniktech.maven.publish.SonatypeHost
2-
import java.time.Year
3-
41
plugins {
52
`version-catalog`
6-
alias(libs.plugins.semver)
7-
alias(libs.plugins.vanniktech.publish)
3+
plugins.publishing
84
}
95

10-
group = libs.versions.group.get()
11-
126
description = "Gradle version catalog!"
137

148
catalog { versionCatalog { from(files(rootDir.resolve("gradle/libs.versions.toml"))) } }
15-
16-
mavenPublishing {
17-
publishToMavenCentral(host = SonatypeHost.CENTRAL_PORTAL, automaticRelease = false)
18-
19-
signAllPublications()
20-
21-
pom {
22-
val githubUser = libs.versions.dev.name.get().lowercase()
23-
val githubRepo = "https://github.com/${githubUser}/${rootProject.name}"
24-
25-
name = provider { "${project.group}:${project.name}" }
26-
description = provider { project.description }
27-
inceptionYear = Year.now().toString()
28-
url = githubRepo
29-
30-
developers {
31-
developer {
32-
name = libs.versions.dev.name
33-
email = libs.versions.dev.email
34-
organization = libs.versions.org.name
35-
organizationUrl = libs.versions.org.url
36-
}
37-
}
38-
39-
licenses {
40-
license {
41-
name = "The Apache Software License, Version 2.0"
42-
url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
43-
}
44-
}
45-
46-
scm {
47-
url = githubRepo
48-
connection = "scm:git:$githubRepo.git"
49-
developerConnection = "scm:git:$githubRepo.git"
50-
}
51-
}
52-
}

gradle/build-src/build.gradle.kts

-7
This file was deleted.

0 commit comments

Comments
 (0)