Vampire
(Björn Kautler)
June 8, 2022, 9:29am
2
Can you elaborate on what you mean?
Gradle does not highlight anything, it is a build tool.
Which IDE is that even?
What do you want to highlight where?
…?
Vampire
(Björn Kautler)
June 9, 2022, 10:22am
4
How do you create it and use it?
This is my plugin defined
abstract class DependencyBomPlugin implements Plugin<Project> {
public static final String DEPENDENCY_BOM = "dependencyBom"
@Override
void apply(Project project) {
def dependencyBom = project.configurations.create(DEPENDENCY_BOM)
dependencyBom.visible = false
dependencyBom.canBeResolved = false
dependencyBom.canBeConsumed = false
project.plugins.withType(JavaPlugin.class) {
project.configurations.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME).extendsFrom(dependencyBom)
project.configurations.getByName(JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME).extendsFrom(dependencyBom)
project.configurations.getByName(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME).extendsFrom(dependencyBom)
project.configurations.getByName(JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME).extendsFrom(dependencyBom)
project.configurations.getByName(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME).extendsFrom(dependencyBom)
project.configurations.getByName(JavaPlugin.TEST_COMPILE_ONLY_CONFIGURATION_NAME).extendsFrom(dependencyBom)
project.configurations.getByName(JavaPlugin.TEST_ANNOTATION_PROCESSOR_CONFIGURATION_NAME).extendsFrom(dependencyBom)
}
}
}
Use in “build.gradle”
configure(gradleModuleProjects) {
apply plugin: "java"
apply plugin: "com.livk.dependency"
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
dependencies {
dependencyBom platform(project(":livk-boot-dependencies"))
}
}
But “dependencyBom” cannot be highlighted like “optional” defined by “spring”
Vampire
(Björn Kautler)
June 9, 2022, 11:55am
6
Ah, so you are using Groovy DSL, no idea then.
Maybe IntelliJ has explicit support for Spring “optional”, I don’t know.
You proabably better ask them.
Or you use the Kotlin DSL, there everything is type-safe so you have extremely better IDE support including highlighting and completion.