Javi
03/18/2024, 8:20 PMpluginManagement {
val fooVersion: String =
file("$rootDir/gradle/libs.versions.toml")
.readLines()
.first { it.contains("foo") }
.split("\"")[1]
repositories {
gradlePluginPortal()
mavenCentral()
google()
}
plugins {
id("com.foo") version fooVersion
}
}
plugins {
id("com.foo")
}
ganachoco
03/18/2024, 11:08 PMephemient
03/19/2024, 1:56 PM[versions]
foo = "0.1"
[plugins]
foo = { id = "com.foo", version.ref = "foo" }
plugins {
alias(libs.plugins.foo)
instead?Javi
03/19/2024, 1:59 PMephemient
03/19/2024, 2:03 PMJavi
03/19/2024, 2:22 PMephemient
03/19/2024, 4:01 PMpluginManagement {
val parseToml = Gradle::class.java.classLoader.loadClass("org.tomlj.Toml")
.getMethod("parse", java.io.InputStream::class.java)
val toml = file("gradle/libs.versions.toml").inputStream().use { parseToml.invoke(null, it) }
val versions = toml.withGroovyBuilder {
"getTable"("versions")?.withGroovyBuilder {
("keySet"() as Set<*>).associateWith { "get"(listOf(it)).toString() }
}
}.orEmpty()
val fooVersion = versions["foo"]
before but only in personal non-production projectsJavi
03/19/2024, 4:07 PMJavi
03/19/2024, 4:15 PM