plugins { id "java-gradle-plugin" id "io.spring.javaformat" version "${javaFormatVersion}" id "checkstyle" id "eclipse" } repositories { mavenCentral() gradlePluginPortal() maven { url "https://repo.spring.io/release" } } sourceCompatibility = 17 targetCompatibility = 17 ext { def propertiesFile = new File(new File("$projectDir").parentFile, "gradle.properties") propertiesFile.withInputStream { def properties = new Properties() properties.load(it) set("kotlinVersion", properties["kotlinVersion"]) } } dependencies { checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}" implementation(platform("org.springframework:spring-framework-bom:5.3.15")) implementation("com.diffplug.gradle:goomph:3.37.2") implementation("com.fasterxml.jackson.core:jackson-databind:2.11.4") implementation("com.gradle:gradle-enterprise-gradle-plugin:3.12.1") implementation("com.tngtech.archunit:archunit:1.0.0") implementation("commons-codec:commons-codec:1.13") implementation("org.apache.maven:maven-embedder:3.6.2") implementation("org.asciidoctor:asciidoctor-gradle-jvm:3.3.2") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}") implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:${kotlinVersion}") implementation("org.springframework:spring-core") implementation("org.springframework:spring-web") implementation("io.spring.javaformat:spring-javaformat-gradle-plugin:${javaFormatVersion}") testImplementation("org.assertj:assertj-core:3.11.1") testImplementation("org.apache.logging.log4j:log4j-core:2.17.1") testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } checkstyle { toolVersion = 8.11 } gradlePlugin { plugins { annotationProcessorPlugin { id = "org.springframework.boot.annotation-processor" implementationClass = "org.springframework.boot.build.processors.AnnotationProcessorPlugin" } architecturePlugin { id = "org.springframework.boot.architecture" implementationClass = "org.springframework.boot.build.architecture.ArchitecturePlugin" } autoConfigurationPlugin { id = "org.springframework.boot.auto-configuration" implementationClass = "org.springframework.boot.build.autoconfigure.AutoConfigurationPlugin" } bomPlugin { id = "org.springframework.boot.bom" implementationClass = "org.springframework.boot.build.bom.BomPlugin" } configurationPropertiesPlugin { id = "org.springframework.boot.configuration-properties" implementationClass = "org.springframework.boot.build.context.properties.ConfigurationPropertiesPlugin" } conventionsPlugin { id = "org.springframework.boot.conventions" implementationClass = "org.springframework.boot.build.ConventionsPlugin" } deployedPlugin { id = "org.springframework.boot.deployed" implementationClass = "org.springframework.boot.build.DeployedPlugin" } integrationTestPlugin { id = "org.springframework.boot.integration-test" implementationClass = "org.springframework.boot.build.test.IntegrationTestPlugin" } systemTestPlugin { id = "org.springframework.boot.system-test" implementationClass = "org.springframework.boot.build.test.SystemTestPlugin" } mavenPluginPlugin { id = "org.springframework.boot.maven-plugin" implementationClass = "org.springframework.boot.build.mavenplugin.MavenPluginPlugin" } mavenRepositoryPlugin { id = "org.springframework.boot.maven-repository" implementationClass = "org.springframework.boot.build.MavenRepositoryPlugin" } optionalDependenciesPlugin { id = "org.springframework.boot.optional-dependencies" implementationClass = "org.springframework.boot.build.optional.OptionalDependenciesPlugin" } processedAnnotationsPlugin { id = "org.springframework.boot.processed-annotations" implementationClass = "org.springframework.boot.build.processors.ProcessedAnnotationsPlugin" } starterPlugin { id = "org.springframework.boot.starter" implementationClass = "org.springframework.boot.build.starters.StarterPlugin" } testFailuresPlugin { id = "org.springframework.boot.test-failures" implementationClass = "org.springframework.boot.build.testing.TestFailuresPlugin" } } } test { useJUnitPlatform() } eclipse.classpath.file.whenMerged { def jreEntry = entries.find { it.path.contains("org.eclipse.jdt.launching.JRE_CONTAINER") } jreEntry.entryAttributes['module'] = 'true' jreEntry.entryAttributes['limit-modules'] = 'java.base' }