André Martins
04/27/2024, 11:40 PMproject.afterEvaluate to configure the underlying plugins, is that the best approach? Thanks in advance ✌️Vampire
04/28/2024, 12:32 AMafterEvaluate is seldomly a good idea. The main effect it has is adding ordering problems, timing problems, and race conditions.Vampire
04/28/2024, 12:34 AMAndré Martins
04/28/2024, 12:43 AMAndré Martins
04/28/2024, 12:43 AMVampire
04/28/2024, 12:45 AMAndré Martins
04/28/2024, 12:56 AMplugins {
`common-plug`
}
test {
dependencies {
implementation...
}
}
common-plug.gradle.kts
interface TestExtension {
val dependencies: Property<JvmComponentDependencies.() -> Unit>
fun dependencies(block: JvmComponentDependencies.() -> Unit) {
dependencies = block
}
}
val extension = project.extensions.create<TestExtension>("test")
project.afterEvaluate {
testing {
suites {
getByName<JvmTestSuite>("test") {
//common config...
dependencies {
extension.dependencies.get()()
}
}
}
}
}ephemient
04/28/2024, 1:08 AMproject.extensions.add(JvmTestSuite::class, "test", testing.suites.getByName("test"))
would make that DSL available at the top level in buildscripts, if that's what you want a shortcut forAndré Martins
04/28/2024, 1:13 AMephemient
04/28/2024, 1:13 AMextensions.add is not the same as extensions.create