Slackbot
09/01/2022, 11:06 PMephemient
09/01/2022, 11:33 PMPlugin<Settings>
but AFAIK it must come from a repository as a binary, not from a included buildephemient
09/01/2022, 11:35 PMephemient
09/01/2022, 11:37 PM// settings.gradle.kts
pluginManagement {
includeBuild("plugin")
}
plugins {
id("com.example.plugin")
}
// plugin/build.gradle.kts
plugins {
`java-gradle-plugin`
}
gradlePlugin {
plugins {
create("plugin") {
id = "com.example.plugin"
implementationClass = "com.example.SettingsPlugin"
}
}
}
// plugin/src/main/java/com/example/SettingsPlugin.java
package com.example;
import org.gradle.api.Plugin;
import org.gradle.api.initialization.Settings;
public class SettingsPlugin implements Plugin<Settings> {
@Override
public void apply(Settings target) {
}
}
Zak Taccardi
09/01/2022, 11:40 PMkotlin-dsl
plugin can be leveraged for a *.gradle.kts
formatZak Taccardi
09/01/2022, 11:41 PMsettings.gradle.kts
would import it then add its own custom logic if neededephemient
09/02/2022, 12:00 AMThe target of a given script plugin is defined via its file name suffix in the following manner:
- thefile name suffix defines a [Gradle] script plugin.init.gradle.kts
- thefile name suffix defines a [Settings] script plugin.settings.gradle.kts
- and finally, the simplerfile name suffix defines a [Project] script plugin.gradle.kts
ephemient
09/02/2022, 12:01 AMZak Taccardi
09/02/2022, 12:09 AMxyz.settings.gradle.kts
- interestingZak Taccardi
09/02/2022, 12:27 AM// in my shared settings gradle precompiled plugin
plugins {
id("com.gradle.enterprise") version ("3.11.1")
id("com.gradle.common-custom-user-data-gradle-plugin") version ("1.8")
}
Plugin [id: 'com.gradle.enterprise'] was not found in any of the following sources:
Those IDs and versions need to be specified in the root settings.gradle.kts
too, and that is something I’m trying to share lolZak Taccardi
09/02/2022, 12:27 AMephemient
09/02/2022, 12:30 AMZak Taccardi
09/02/2022, 12:30 AMephemient
09/02/2022, 12:33 AM// plugin/build.gradle.kts
dependencies {
implementation("com.gradle:gradle-enterprise-gradle-plugin:3.11.1")
}
// plugin/src/main/kotlin/xyz.settings.gradle.kts
plugins {
id("com.gradle.enterprise")
}
Zak Taccardi
09/02/2022, 1:38 AM// File: settings.gradle.kts
pluginManagement {
val springBootPluginVersion: String by settings // use project property with version
plugins {
id("org.springframework.boot") version "${springBootPluginVersion}"
}
}
from https://blog.jdriven.com/2021/02/gradle-goodness-setting-plugin-version-from-property-in-plugins-section/ephemient
09/02/2022, 1:40 AMZak Taccardi
09/02/2022, 1:40 AM