You’re reading right, `plugins` is special-cased a...
# gradle
You’re reading right,
is special-cased and you’re fairly limited what you can put in there
I don’t think that addresses my question. To be a little more precise, here is what I would like to do:
Copy code
plugins {
    id("some.custom.plugin") version "1.2.3"
where “some.custom.plugin” would apply the Kotlin Gradle plugin using the id, for example, “org.jetbrains.kotlin.jvm”. Seems to me this should work. If not, I sure would like to better understand why it doesn’t.
Ah, you were a bit vague and seemed to be talking about available syntax in the plugin block with your example snippet. Other plugins can apply plugins, but only if they’re already on the classpath. If
has an implementation dependency on the
plugin, it can just freely
it under the hood. If it doesn’t, that plugin needs to be available on the classpath already (either via manually adding it to plugins or another plugin transitively bringing it in). You can’t dynamically define the version when applying from another plugin as far as I know, it’s beholden to what is already on the classpath as defined by
or your own plugin’s dependencies You can think of the plugins block syntax like so
Copy code
# Puts the kotlin jvm plugin on the classpath and applies it
kotlin("jvm") version "1.8.0"

# Same as above but doesn't apply the plugin itself. Only puts it on the classpath
kotlin("jvm") version "1.8.0" apply false
But at this point this is no longer related to Kotlin and I recommend you bring your question to the gradle community slack.
Good answer, thanks Zac.