build.gradle 2.1 KB
Newer Older
1 2 3 4
plugins {
    id "java"
    id "idea"
    id "application"
5 6 7 8

    //
    // use the latest available version:
    // https://plugins.gradle.org/plugin/io.github.kobylynskyi.graphql.codegen
9
    id "io.github.kobylynskyi.graphql.codegen" version "5.8.1-SNAPSHOT"
10 11
}

12
mainClassName = "io.github.kobylynskyi.product.Application"
13 14

dependencies {
15
    implementation "org.springframework.boot:spring-boot-starter-web:2.7.10"
16
    implementation "org.springframework.boot:spring-boot-starter-data-mongodb:2.7.13"
17

18
    implementation "com.graphql-java-kickstart:graphql-spring-boot-starter:11.0.0"
19
    implementation "com.graphql-java-kickstart:graphiql-spring-boot-starter:11.1.0"
20
    implementation "com.graphql-java:graphql-java-extended-scalars:20.2"
21

22 23
    implementation "javax.validation:validation-api:2.0.1.Final"

24 25
    compileOnly "org.projectlombok:lombok:1.18.28"
    annotationProcessor "org.projectlombok:lombok:1.18.28"
26

27 28
    implementation 'org.projectlombok:lombok-mapstruct-binding:0.2.0'

29 30
    implementation "org.mapstruct:mapstruct:1.5.5.Final"
    annotationProcessor "org.mapstruct:mapstruct-processor:1.5.5.Final"
31 32 33 34 35 36 37 38 39
}

compileJava.dependsOn "graphqlCodegen"

sourceSets.main.java.srcDir "$buildDir/generated"

graphqlCodegen {
    graphqlSchemaPaths = ["$projectDir/src/main/resources/schema.graphqls".toString()]
    outputDir = new File("$buildDir/generated")
40 41
    apiPackageName = "io.github.kobylynskyi.product.graphql.api"
    modelPackageName = "io.github.kobylynskyi.product.graphql.model"
42 43 44
    customTypesMapping = [
            DateTime: "java.util.Date"
    ]
45 46 47 48 49 50
    parentInterfaces {
        queryResolver = "graphql.kickstart.tools.GraphQLQueryResolver"
        mutationResolver = "graphql.kickstart.tools.GraphQLMutationResolver"
        subscriptionResolver = "graphql.kickstart.tools.GraphQLSubscriptionResolver"
        resolver = "graphql.kickstart.tools.GraphQLResolver<{{TYPE}}>"
    }
51 52
    modelNameSuffix = "TO"
    generateApis = true
53 54 55
    supportUnknownFields = true
    unknownFieldsPropertyName = "additionalFields"

56 57 58 59 60 61 62
}

repositories {
    jcenter()
    mavenCentral()
    mavenLocal()
}