Skip to content

Commit 50d93fd

Browse files
committed
chore: simplify build dependencies
1 parent 147536f commit 50d93fd

File tree

7 files changed

+78
-80
lines changed

7 files changed

+78
-80
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ For testing, a separate [sandbox project](/sandbox) is available with the plugin
8888
## Publishing
8989

9090
Push a new tag to trigger the release workflow and publish the plugin
91-
to [maven central](https://repo1.maven.org/maven2/dev/suresh/build/). That's it 🎉.
91+
to [maven central](https://repo.maven.apache.org/maven2/dev/suresh/build/). That's it 🎉.
9292
The next version will be based on the semantic version scope (`major`, `minor`, `patch`)
9393

9494
```bash

gradle/build-logic/build.gradle.kts

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,27 @@ dependencies {
8282
// Hack to access the version catalog from pre-compiled script plugins.
8383
// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
8484
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
85-
implementation(libs.build.spotless.plugin)
86-
implementation(libs.build.shadow.plugin)
87-
implementation(libs.build.semver.plugin)
88-
implementation(libs.build.benmanesversions)
89-
implementation(libs.build.vanniktech.publish)
90-
implementation(libs.build.nmcp.plugin)
91-
implementation(libs.build.foojay.resolver)
92-
implementation(libs.build.jte.plugin)
85+
implementation(libs.plugins.spotless.dep)
86+
implementation(libs.plugins.shadow.dep)
87+
implementation(libs.plugins.semver.dep)
88+
implementation(libs.plugins.benmanes.dep)
89+
implementation(libs.plugins.vanniktech.publish.dep)
90+
implementation(libs.plugins.foojay.resolver.dep)
91+
implementation(libs.plugins.jte.dep)
9392
implementation(libs.ajalt.mordant.coroutines)
94-
implementation(libs.build.tomlj)
93+
implementation(libs.tomlj)
9594

96-
// For "Kotlin Gradle plugin" in pre-compiled script plugins
95+
// For 'Kotlin Gradle plugin' in pre-compiled script plugins
9796
implementation(embeddedKotlin("gradle-plugin"))
98-
// For "kotlin-dsl" plugin in pre-compiled script plugins
99-
implementation("${libs.build.kotlin.dsl.get().module}:${expectedKotlinDslPluginsVersion}")
97+
// For 'kotlin-dsl' plugin in pre-compiled script plugins
98+
implementation(libs.plugins.kotlin.dsl.dep) {
99+
version { strictly(expectedKotlinDslPluginsVersion) }
100+
}
100101
}
102+
103+
/**
104+
* Converts a Plugin Dependency to Gradle's standard dependency notation format. This is used to
105+
* declare plugin dependencies in the buildscript classpath.
106+
*/
107+
val Provider<PluginDependency>.dep: Provider<String>
108+
get() = map { "${it.pluginId}:${it.pluginId}.gradle.plugin:${it.version}" }

gradle/build-logic/src/main/kotlin/common/Project.kt renamed to gradle/build-logic/src/main/kotlin/common/ProjectExtns.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package common
33
import org.gradle.accessors.dm.LibrariesForLibs
44
import org.gradle.api.Project
55
import org.gradle.api.artifacts.VersionCatalogsExtension
6+
import org.gradle.api.provider.Provider
67
import org.gradle.kotlin.dsl.the
8+
import org.gradle.plugin.use.PluginDependency
79

810
/** Returns the version catalog of this project. */
911
internal val Project.libs
@@ -51,3 +53,10 @@ val Project.githubPackagesUsername
5153

5254
val Project.githubPackagesPassword
5355
get() = providers.gradleProperty("githubPackagesPassword")
56+
57+
/**
58+
* Converts a Plugin Dependency to Gradle's standard dependency notation format. This is used to
59+
* declare plugin dependencies in the buildscript classpath.
60+
*/
61+
val Provider<PluginDependency>.dep: Provider<String>
62+
get() = map { "${it.pluginId}:${it.pluginId}.gradle.plugin:${it.version}" }

gradle/build-logic/src/main/kotlin/plugin.kotlin.dsl.gradle.kts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ dependencies {
5454
implementation(platform(libs.kotlin.bom))
5555
implementation(libs.kotlinx.coroutines.core)
5656
implementation(libs.kotlinx.datetime)
57-
implementation(libs.kotlinx.collections.immutable)
58-
implementation(libs.ktor.client.java)
59-
implementation(libs.ktor.client.content.negotiation)
60-
implementation(libs.ktor.client.encoding)
61-
implementation(libs.ktor.client.logging)
62-
implementation(libs.ktor.client.resources)
63-
implementation(libs.ktor.client.auth)
64-
implementation(libs.ktor.serialization.json)
57+
implementation(libs.kotlinx.serialization.json)
6558
implementation(libs.ajalt.mordant.coroutines)
6659
testImplementation(gradleTestKit())
60+
// implementation(libs.ktor.client.java)
61+
// implementation(libs.ktor.client.content.negotiation)
62+
// implementation(libs.ktor.client.encoding)
63+
// implementation(libs.ktor.client.logging)
64+
// implementation(libs.ktor.client.resources)
65+
// implementation(libs.ktor.client.auth)
66+
// implementation(libs.ktor.serialization.json)
6767
}

plugins/project/build.gradle.kts

Lines changed: 32 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@file:Suppress("UnstableApiUsage")
22

3+
import common.*
34
import gg.jte.gradle.GenerateJteTask
45

56
plugins {
@@ -81,53 +82,39 @@ tasks {
8182

8283
dependencies {
8384
implementation(projects.plugins.shared)
84-
implementation(libs.build.zip.prefixer)
85+
implementation(libs.zip.prefixer)
8586
implementation(libs.jte.runtime)
8687
jteGenerate(libs.jte.models)
87-
// compileOnly(libs.jte.kotlin)
88-
8988
// External plugins deps to use in precompiled script plugins
90-
implementation(libs.build.kotlin)
91-
// OR implementation(kotlin("gradle-plugin"))
92-
implementation(libs.build.kotlin.ksp)
93-
implementation(libs.build.kotlinx.atomicfu)
94-
implementation(libs.build.kotlin.allopen)
95-
implementation(libs.build.kotlin.powerassert)
96-
implementation(libs.build.kotlin.jsplainobjects)
97-
implementation(libs.build.kotlinx.serialization)
98-
implementation(libs.build.kotlinx.kover)
99-
implementation(libs.build.kotlinx.benchmark)
100-
implementation(libs.build.kotlinx.bcv)
101-
implementation(libs.build.kmpmt)
102-
implementation(libs.build.dokka.plugin)
103-
implementation(libs.build.redacted.plugin)
104-
implementation(libs.build.nmcp.plugin)
105-
implementation(libs.build.nexus.plugin)
106-
implementation(libs.build.spotless.plugin)
107-
implementation(libs.build.shadow.plugin)
108-
implementation(libs.build.mrjar.plugin)
109-
implementation(libs.build.semver.plugin)
110-
implementation(libs.build.benmanesversions)
111-
implementation(libs.build.tasktree)
112-
implementation(libs.build.nativeimage.plugin)
113-
implementation(libs.build.mokkery.plugin)
114-
implementation(libs.build.jte.plugin)
115-
implementation(libs.build.jib.plugin)
116-
implementation(libs.build.jib.nativeimage.extn)
117-
implementation(libs.build.github.changelog)
118-
implementation(libs.build.modulegraph.plugin)
119-
implementation(libs.build.kopy.plugin)
120-
121-
// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
89+
implementation(libs.plugins.kotlin.multiplatform.dep)
90+
implementation(libs.plugins.kotlin.allopen.dep)
91+
implementation(libs.plugins.kotlin.powerassert.dep)
92+
implementation(libs.plugins.kotlin.js.plainobjects.dep)
93+
implementation(libs.plugins.kotlin.ksp.dep)
94+
implementation(libs.plugins.kotlinx.atomicfu.dep)
95+
implementation(libs.plugins.kotlinx.serialization.dep)
96+
implementation(libs.plugins.kotlinx.kover.dep)
97+
implementation(libs.plugins.kotlinx.benchmark.dep)
98+
implementation(libs.plugins.kotlinx.bcv.dep)
99+
implementation(libs.plugins.jetbrains.dokka.dep)
100+
implementation(libs.plugins.graalvm.nativeimage.dep)
101+
implementation(libs.plugins.redacted.dep)
102+
implementation(libs.plugins.nmcp.dep)
103+
implementation(libs.plugins.spotless.dep)
104+
implementation(libs.plugins.shadow.dep)
105+
implementation(libs.plugins.mrjar.dep)
106+
implementation(libs.plugins.semver.dep)
107+
implementation(libs.plugins.benmanes.dep)
108+
implementation(libs.plugins.tasktree.dep)
109+
implementation(libs.plugins.mokkery.dep)
110+
implementation(libs.plugins.jte.dep)
111+
implementation(libs.plugins.jib.dep)
112+
implementation(libs.plugins.modulegraph.dep)
113+
implementation(libs.plugins.kopy.dep)
114+
implementation(libs.jib.nativeimage.extn)
115+
implementation(libs.plugins.github.changelog.dep)
116+
implementation(libs.kmpmt)
122117
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
123-
124-
// implementation(libs.build.kotlin.compose.compiler)
125-
// implementation(libs.build.karakum.plugin)
126-
// implementation(libs.jte.native)
127-
// implementation(libs.build.kmp.hierarchy)
128-
// implementation(libs.build.includegit.plugin)
129-
// implementation(libs.build.dependencyanalysis)
130-
131-
// For using kotlin-dsl in pre-compiled script plugins
132-
// implementation("${libs.build.kotlin.dsl.get().module}:${expectedKotlinDslPluginsVersion}")
118+
// implementation(libs.plugins.nexus.publish.dep)
119+
// compileOnly(libs.jte.kotlin)
133120
}

plugins/project/src/main/kotlin/common/ProjectExtns.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import org.gradle.internal.os.OperatingSystem
3030
import org.gradle.jvm.toolchain.*
3131
import org.gradle.kotlin.dsl.*
3232
import org.gradle.kotlin.dsl.extra
33-
import org.gradle.plugin.use.PluginDependency
3433
import org.jetbrains.kotlin.gradle.dsl.*
3534
import org.jetbrains.kotlin.gradle.plugin.*
3635
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
@@ -202,14 +201,6 @@ fun Project.withJavaModule(moduleName: String, supportedInNative: Boolean = fals
202201
}
203202
}
204203

205-
/**
206-
* Returns the Gradle plugin marker dependency notation in the format '<plugin id>:<plugin
207-
* id>.gradle.plugin:<plugin version>'. This format is used to declare plugin dependencies in the
208-
* buildscript classpath.
209-
*/
210-
val Provider<PluginDependency>.pluginMarker
211-
get() = "${get().pluginId}:${get().pluginId}.gradle.plugin:${get().version}"
212-
213204
/**
214205
* JVM arguments for running (**java**) or compiling (**javac**) java/kotlin build tasks.
215206
* - [Java-Command](https://docs.oracle.com/en/java/javase/20/docs/specs/man/java.html)
@@ -446,6 +437,7 @@ fun KotlinCommonCompilerOptions.configureKotlinCommon(project: Project) =
446437
"-Xwhen-guards",
447438
"-Xmulti-dollar-interpolation",
448439
"-Xnon-local-break-continue",
440+
// "-Xexpected-type-guided-resolution",
449441
// "-XXLanguage:+ExplicitBackingFields",
450442
// "-Xsuppress-version-warnings",
451443
// "-P",

plugins/settings/build.gradle.kts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
@file:Suppress("UnstableApiUsage")
22

3+
import common.*
4+
35
plugins {
46
plugin.kotlin.dsl
57
embeddedKotlin("plugin.serialization")
@@ -10,9 +12,9 @@ description = "Gradle build settings plugins!"
1012

1113
dependencies {
1214
implementation(projects.plugins.shared)
13-
implementation(libs.build.kotlinx.kover)
14-
implementation(libs.build.gradle.develocity)
15-
implementation(libs.build.semver.plugin)
16-
implementation(libs.build.foojay.resolver)
17-
implementation(libs.build.tomlj)
15+
implementation(libs.plugins.kotlinx.kover.dep)
16+
implementation(libs.plugins.gradle.develocity.dep)
17+
implementation(libs.plugins.semver.dep)
18+
implementation(libs.plugins.foojay.resolver.dep)
19+
implementation(libs.tomlj)
1820
}

0 commit comments

Comments
 (0)