in graphql-dgs-codegen-gradle/src/main/kotlin/com/netflix/graphql/dgs/codegen/gradle/CodegenPlugin.kt [36:73]
override fun apply(project: Project) {
val codegenExtension = project.extensions.create("codegen", CodegenPluginExtension::class.java)
project.plugins.apply(JavaPlugin::class.java)
val generateJavaTaskProvider = project.tasks.register("generateJava", GenerateJavaTask::class.java)
generateJavaTaskProvider.configure { it.group = GRADLE_GROUP }
val javaExtension = project.extensions.getByType(JavaPluginExtension::class.java)
val sourceSets =
if (GradleVersion.current() >=
GradleVersion.version("7.1")
) {
javaExtension.sourceSets
} else {
throw RuntimeException("Gradle versions < 7.1 are no longer supported by DGS Codegen. Please upgrade your Gradle version.")
}
val mainSourceSet = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME)
val outputDir = generateJavaTaskProvider.map(GenerateJavaTask::getOutputDir)
mainSourceSet.java.srcDirs(project.files(outputDir).builtBy(generateJavaTaskProvider))
project.configurations.create("dgsCodegen")
project.configurations.findByName("dgsCodegen")?.isCanBeResolved = true
addDependencyLock(project, codegenExtension)
project.afterEvaluate { p ->
if (codegenExtension.clientCoreConventionsEnabled.getOrElse(true)) {
logger.info("Applying CodegenPlugin Client Utils conventions.")
ClientUtilsConventions.apply(
p,
Optional.ofNullable(codegenExtension.clientCoreVersion.orNull),
Optional.ofNullable(codegenExtension.clientCoreScope.orNull),
)
}
}
}