plugins { id "java" id "idea" id "ivy-publish" id "jacoco" id "java-library" id "signing" id "maven-publish" } version = "2.0.0-SNAPSHOT" group = "io.github.kobylynskyi" repositories { mavenCentral() jcenter() } dependencies { 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" implementation "org.projectlombok:lombok:1.18.12" annotationProcessor "org.projectlombok:lombok:1.18.12" testImplementation "org.junit.jupiter:junit-jupiter-api:5.6.2" testImplementation "org.junit.jupiter:junit-jupiter-params:5.5.1" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.5.1" testImplementation "org.hamcrest:java-hamcrest:2.0.0.0" } 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 java { withJavadocJar() withSourcesJar() } publishing { publications { mavenJava(MavenPublication) { artifactId "graphql-java-codegen" from components.java versionMapping { usage('java-api') { fromResolutionOf('runtimeClasspath') } usage('java-runtime') { fromResolutionResult() } } pom { name = "GraphQL Java CodeGen" description = "Java Code Generator based on GraphQL schema" url = "https://github.com/kobylynskyi/graphql-java-codegen" organization { name = "io.github.kobylynskyi" 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" } developer { id = "valinha" name = "Alberto ValiƱa" email = "valinhadev@gmail.com" } } } } ivy(IvyPublication) { from components.java versionMapping { usage('java-api') { fromResolutionOf('runtimeClasspath') } usage('java-runtime') { fromResolutionResult() } } } } repositories { maven { url "https://oss.sonatype.org/service/local/staging/deploy/maven2" credentials { username sonatypeUsername password sonatypePassword } } ivy { url "${System.properties['user.home']}/.ivy2/local" patternLayout { // 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" artifact '[organisation]/[module]/[revision]/[ext]s/[artifact](-[classifier])(.[ext])' ivy '[organisation]/[module]/[revision]/[artifact]/[artifact](-[classifier])(.[ext])' } } } } if (project.hasProperty("signing.keyId")) { signing { sign publishing.publications.mavenJava } }