build.gradle 3.7 KB
Newer Older
1
import io.github.kobylynskyi.graphql.codegen.gradle.GraphQLCodegenGradleTask
2 3 4 5 6

plugins {
    id "java"
    id "idea"
    id "application"
7 8 9

    // use the latest available version:
    // https://plugins.gradle.org/plugin/io.github.kobylynskyi.graphql.codegen
10
    id "io.github.kobylynskyi.graphql.codegen" version "5.3.0"
11 12
}

13
mainClassName = "io.github.kobylynskyi.order.Application"
14 15

dependencies {
16 17
    implementation "org.springframework.boot:spring-boot-starter-web:2.4.4"
    implementation "org.springframework.boot:spring-boot-starter-data-mongodb:2.4.4"
18

19 20
    implementation "com.graphql-java-kickstart:graphql-spring-boot-starter:11.0.0"
    implementation "com.graphql-java-kickstart:graphiql-spring-boot-starter:11.0.0"
21
    implementation "com.graphql-java:graphql-java-extended-scalars:16.0.1"
22

23 24
    // use the latest available version:
    // https://search.maven.org/artifact/io.github.kobylynskyi/graphql-java-codegen
25
    implementation "io.github.kobylynskyi:graphql-java-codegen:5.3.0"
26

27
    implementation "org.apache.httpcomponents:httpclient:4.5.13"
28
    implementation "javax.validation:validation-api:2.0.1.Final"
29

30
    implementation "org.mapstruct:mapstruct:1.4.2.Final"
31
    annotationProcessor "org.mapstruct:mapstruct-processor:1.4.2.Final"
32

33 34
    compileOnly "org.projectlombok:lombok:1.18.18"
    annotationProcessor "org.projectlombok:lombok:1.18.12"
35

36
    testImplementation "io.rest-assured:rest-assured:4.3.3"
37
    testImplementation "org.junit.jupiter:junit-jupiter-api:5.7.1"
38
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.7.1"
39 40
}

B
Bogdan Kobylynskyi 已提交
41

42 43 44 45
/**
 * Generate requests and model from external service
 */
compileJava.dependsOn "graphqlCodegenProductService"
46
sourceSets.main.java.srcDir "$buildDir/generated-client"
47
task graphqlCodegenProductService(type: GraphQLCodegenGradleTask) {
B
Bogdan Kobylynskyi 已提交
48
    graphqlSchemas.includePattern = "schema-product-service\\.graphqls"
49 50 51 52 53 54 55
    outputDir = new File("$buildDir/generated-client")
    modelPackageName = "io.github.kobylynskyi.product.graphql.model"
    customTypesMapping = [
            DateTime: "java.util.Date"
    ]
    modelNameSuffix = "TO"
    generateApis = false
56 57
    generateClient = true
    generateParameterizedFieldsResolvers = false
58 59
}

B
Bogdan Kobylynskyi 已提交
60

61 62 63 64
/**
 * Generate apis and model
 */
compileJava.dependsOn "graphqlCodegenOrderService"
65
sourceSets.main.java.srcDir "$buildDir/generated-server"
66
task graphqlCodegenOrderService(type: GraphQLCodegenGradleTask) {
B
Bogdan Kobylynskyi 已提交
67
    graphqlSchemas.includePattern = "schema\\.graphqls"
68 69 70 71 72 73 74 75 76
    outputDir = new File("$buildDir/generated-server")
    apiPackageName = "io.github.kobylynskyi.order.graphql.api"
    modelPackageName = "io.github.kobylynskyi.order.graphql.model"
    customTypesMapping = [
            DateTime: "java.util.Date"
    ]
    modelNameSuffix = "TO"
}

B
Bogdan Kobylynskyi 已提交
77 78 79 80 81 82 83 84 85 86
/**
 * Generate requests and model from another external service
 */
compileJava.dependsOn "graphqlCodegenStarwarsService"
sourceSets.main.java.srcDir "$buildDir/generated-client-starwars"
task graphqlCodegenStarwarsService(type: GraphQLCodegenGradleTask) {
    graphqlSchemas.includePattern = "schema-starwars-service\\.graphqls"
    outputDir = new File("$buildDir/generated-client-starwars")
    packageName = "io.github.kobylynskyi.starwars.graphql"
    customAnnotationsMapping = [
87 88 89 90
            "Character": [
                    "@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")",
                    "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)"
            ]
B
Bogdan Kobylynskyi 已提交
91 92 93
    ]
    generateClient = true
    generateApis = false
94
    generateBuilder = true
B
Bogdan Kobylynskyi 已提交
95
    generateToString = true
96
    generateParameterizedFieldsResolvers = false
B
Bogdan Kobylynskyi 已提交
97 98 99
}


100 101 102 103 104
repositories {
    jcenter()
    mavenCentral()
    mavenLocal()
}