build.gradle 4.6 KB
Newer Older
1
plugins {
B
Bogdan Kobylynskyi 已提交
2 3
    id "java"
    id "idea"
4
    id "ivy-publish"
B
Bogdan Kobylynskyi 已提交
5
    id "jacoco"
6 7
    id "java-library"
    id "signing"
B
Bogdan Kobylynskyi 已提交
8
    id "maven-publish"
9 10
}

11
version = "1.7.4"
12
group = "io.github.kobylynskyi"
13

14 15 16 17 18 19
repositories {
    mavenCentral()
    jcenter()
}

dependencies {
20 21 22
    implementation "org.freemarker:freemarker:2.3.30"
    implementation "com.graphql-java:graphql-java:14.0"
    implementation "com.fasterxml.jackson.core:jackson-databind:2.10.3"
23

24 25
    implementation "org.projectlombok:lombok:1.18.12"
    annotationProcessor "org.projectlombok:lombok:1.18.12"
26 27 28

    testImplementation "org.junit.jupiter:junit-jupiter-api:5.5.1"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.5.1"
29
    testImplementation 'org.hamcrest:java-hamcrest:2.0.0.0'
30 31
}

B
Bogdan Kobylynskyi 已提交
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
test.useJUnitPlatform()

task codeCoverageReport(type: JacocoReport) {
    executionData fileTree(project.rootDir.absolutePath).include("build/jacoco/*.exec")

    sourceSets sourceSets.main

    reports {
        xml.enabled true
        xml.destination file("${buildDir}/reports/jacoco/report.xml")
        html.enabled false
        csv.enabled false
    }
}

codeCoverageReport.dependsOn test

49

50

51 52 53
java {
    withJavadocJar()
    withSourcesJar()
54 55 56 57 58 59
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            artifactId "graphql-java-codegen"
60 61 62 63 64 65 66 67 68
            from components.java
            versionMapping {
                usage('java-api') {
                    fromResolutionOf('runtimeClasspath')
                }
                usage('java-runtime') {
                    fromResolutionResult()
                }
            }
69 70 71 72 73 74

            pom {
                name = "GraphQL Java CodeGen"
                description = "Java Code Generator based on GraphQL schema"
                url = "https://github.com/kobylynskyi/graphql-java-codegen"
                organization {
75
                    name = "io.github.kobylynskyi"
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
                    url = "https://github.com/kobylynskyi"
                }
                issueManagement {
                    system = "GitHub"
                    url = "https://github.com/kobylynskyi/graphql-java-codegen/issues"
                }
                licenses {
                    license {
                        name = "MIT License"
                        url = "https://github.com/kobylynskyi/graphql-java-codegen/blob/master/LICENSE"
                        distribution = "repo"
                    }
                }
                scm {
                    url = "https://github.com/kobylynskyi/graphql-java-codegen"
                    connection = "scm:git:git://github.com/kobylynskyi/graphql-java-codegen.git"
                    developerConnection = "scm:git:ssh://git@github.com:kobylynskyi/graphql-java-codegen.git"
                }
                developers {
                    developer {
                        id = "kobylynskyi"
                        name = "Bogdan Kobylynskyi"
                        email = "92bogdan@gmail.com"
                    }
A
Alberto Valiña 已提交
100 101 102 103 104
                    developer {
                        id = "valinha"
                        name = "Alberto Valiña"
                        email = "valinhadev@gmail.com"
                    }
105 106 107
                }
            }
        }
108 109 110 111 112 113 114 115 116 117 118
        ivy(IvyPublication) {
            from components.java
            versionMapping {
                usage('java-api') {
                    fromResolutionOf('runtimeClasspath')
                }
                usage('java-runtime') {
                    fromResolutionResult()
                }
            }
        }
119 120 121 122 123 124 125 126 127
    }
    repositories {
        maven {
            url "https://oss.sonatype.org/service/local/staging/deploy/maven2"
            credentials {
                username sonatypeUsername
                password sonatypePassword
            }
        }
128 129 130
        ivy {
            url "${System.properties['user.home']}/.ivy2/local"
            patternLayout {
131 132 133 134 135
                // Need to publish twice due to a Gradle bug https://github.com/gradle/gradle/issues/12911
                // First uncomment the 'layout' line below and comment out the 'artifact' and 'ivy' lines and run `./gradlew publishIvyPublicationToIvyRepository`
                // Then restore the code to its original state and run `./gradlew publishIvyPublicationToIvyRepository` again

                // layout "ivy"
136 137 138 139
                artifact '[organisation]/[module]/[revision]/[ext]s/[artifact](-[classifier])(.[ext])'
                ivy '[organisation]/[module]/[revision]/[artifact]/[artifact](-[classifier])(.[ext])'
            }
        }
140 141
    }
}
142

B
Bogdan Kobylynskyi 已提交
143 144 145 146
if (project.hasProperty("signing.keyId")) {
    signing {
        sign publishing.publications.mavenJava
    }
147
}