build.gradle 4.7 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 = "2.0.0-SNAPSHOT"
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
    testImplementation "org.junit.jupiter:junit-jupiter-api:5.6.2"
28
    testImplementation "org.junit.jupiter:junit-jupiter-params:5.5.1"
29
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.5.1"
30
    testImplementation "org.hamcrest:java-hamcrest:2.0.0.0"
31 32
}

B
Bogdan Kobylynskyi 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
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

50

51

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

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

            pom {
                name = "GraphQL Java CodeGen"
                description = "Java Code Generator based on GraphQL schema"
                url = "https://github.com/kobylynskyi/graphql-java-codegen"
                organization {
76
                    name = "io.github.kobylynskyi"
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
                    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 已提交
101 102 103 104 105
                    developer {
                        id = "valinha"
                        name = "Alberto Valiña"
                        email = "valinhadev@gmail.com"
                    }
106 107 108
                }
            }
        }
109 110 111 112 113 114 115 116 117 118 119
        ivy(IvyPublication) {
            from components.java
            versionMapping {
                usage('java-api') {
                    fromResolutionOf('runtimeClasspath')
                }
                usage('java-runtime') {
                    fromResolutionResult()
                }
            }
        }
120 121 122 123 124 125 126 127 128
    }
    repositories {
        maven {
            url "https://oss.sonatype.org/service/local/staging/deploy/maven2"
            credentials {
                username sonatypeUsername
                password sonatypePassword
            }
        }
129 130 131
        ivy {
            url "${System.properties['user.home']}/.ivy2/local"
            patternLayout {
132 133 134 135 136
                // 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"
137 138 139 140
                artifact '[organisation]/[module]/[revision]/[ext]s/[artifact](-[classifier])(.[ext])'
                ivy '[organisation]/[module]/[revision]/[artifact]/[artifact](-[classifier])(.[ext])'
            }
        }
141 142
    }
}
143

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