Genrate Kotlin code for graphql-java from schema file. Does not depend on any specific framework.
build.gradle.kts
plugins {
id("net.matsudamper.graphql.generator") version "<version>"
}
dependencies {
implementation("net.matsudamper.graphql.generator:lib:<version>")
implementation("com.graphql-java:graphql-java:<version>")
}
repositories {
maven {
url = uri("https://maven.pkg.github.com/matsudamper/graphql-kotlin-generator")
credentials {
username = "user_name"
password = System.getenv("GITHUB_TOKEN") // require read:packages Permission
}
}
}
val generatedPath = "build/generated/graphql/main/kotlin"
sourceSets["main"].java.setSrcDirs(
listOf(
"src/main/kotlin",
generatedPath,
).map { File(it) }
)
val generateGraphqlCodeTask = tasks.create<net.matsudamper.graphql.generator.gradle.GenerateQlTask>("generateGraphqlCode") {
files = file("$projectDir/src/main/graphqls").listFiles().orEmpty()
.filter { it.extension == "graphqls" }
packageName = "base.package.name"
outDir = file(generatedPath)
scalarMap.putAll(
mapOf(
"UserId" to "kotlin.Long",
"JvmInt" to "kotlin.Int",
"JvmFloat" to "kotlin.Float",
"JvmDouble" to "kotlin.Double",
"Date" to "java.util.Date",
)
)
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
dependsOn(generateGraphqlCodeTask)
}
settings.gradle
pluginManagement {
repositories {
mavenLocal()
maven {
url = uri("https://maven.pkg.github.com/matsudamper/graphql-kotlin-generator")
credentials {
it.username = "user_name"
it.password = System.getenv("GITHUB_TOKEN") // require read:packages Permission
}
}
gradlePluginPortal()
}
}