build.gradle.kts (96 lines of code) (raw):

/* * Copyright 2021 Netflix, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ buildscript { repositories { mavenCentral() } } group = "com.netflix.graphql.dgs" plugins { `java-library` id("nebula.dependency-recommender") version "11.0.0" id("nebula.netflixoss") version "11.4.0" id("io.spring.dependency-management") version "1.1.7" id("org.jmailen.kotlinter") version "5.0.+" id("me.champeau.jmh") version "0.7.3" kotlin("jvm") version Versions.KOTLIN_VERSION idea eclipse } allprojects { group = "com.netflix.graphql.dgs" repositories { mavenCentral() } apply(plugin = "nebula.netflixoss") apply(plugin = "nebula.dependency-recommender") // We are attempting to define the versions of the artifacts closest to the // place they are referenced such that dependabot can easily pick them up // and suggest an upgrade. The only exception currently are those defined // in buildSrc, most likely because the variables are used in plugins as well // as dependencies. e.g. KOTLIN_VERSION extra["sb.version"] = "3.4.5" extra["kotlin.version"] = Versions.KOTLIN_VERSION } val internalBomModules by extra( listOf( project(":graphql-dgs-platform"), project(":graphql-dgs-platform-dependencies") ) ) configure(subprojects.filterNot { it in internalBomModules }) { apply { plugin("java-library") plugin("kotlin") plugin("org.jmailen.kotlinter") plugin("me.champeau.jmh") plugin("io.spring.dependency-management") } val springBootVersion = extra["sb.version"] as String val jmhVersion = "1.37" dependencyManagement { imports { mavenBom("org.jetbrains.kotlin:kotlin-bom:${Versions.KOTLIN_VERSION}") mavenBom("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") } } dependencies { // Apply the BOM to applicable subprojects. api(platform(project(":graphql-dgs-platform"))) // Sets the JMH version to use across modules. // Please refer to the following links for further reference. // * https://github.com/melix/jmh-gradle-plugin // * https://openjdk.java.net/projects/code-tools/jmh/ jmh("org.openjdk.jmh:jmh-core:${jmhVersion}") jmh("org.openjdk.jmh:jmh-generator-annprocess:${jmhVersion}") testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude(group = "org.junit.vintage", module = "junit-vintage-engine") } implementation("org.jetbrains:annotations:26.0.2") testImplementation("io.mockk:mockk:1.+") } jmh { includeTests.set(true) jmhTimeout.set("5s") timeUnit.set("ms") warmupIterations.set(2) iterations.set(2) fork.set(2) duplicateClassesStrategy.set(DuplicatesStrategy.EXCLUDE) } tasks.withType<Jar> { duplicatesStrategy = DuplicatesStrategy.WARN } tasks.withType<JavaCompile>().configureEach { options.compilerArgs.addAll(listOf("-parameters", "-deprecation")) } tasks { test { useJUnitPlatform() } } tasks.withType<Javadoc>().configureEach { enabled = false options { (this as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") } } kotlin { jvmToolchain(17) compilerOptions { javaParameters = true freeCompilerArgs.addAll("-Xjvm-default=all-compatibility", "-java-parameters") } } kotlinter { reporters = arrayOf("checkstyle", "plain") } }