plugins { id "org.sonarqube" version "2.7" id "com.jfrog.bintray" version "1.8.4" id "me.champeau.gradle.jmh" version "0.4.8" id 'org.asciidoctor.convert' version '1.6.0' id "com.jfrog.artifactory" version "4.9.5" id "org.ajoberstar.github-pages" version "1.7.2" } apply plugin: 'idea' apply from: "${rootDir}/libraries.gradle" ext { releaseVersion = '1.3.3' } allprojects { apply plugin: 'jacoco' apply plugin: 'me.champeau.gradle.jmh' apply plugin: 'com.jfrog.artifactory' version = '2.0.0-SNAPSHOT' group 'io.github.swagger2markup' description = 'swagger2markup Build' repositories { jcenter() mavenCentral() maven { name "OSS Snapshots" url "https://oss.jfrog.org/artifactory/oss-snapshot-local" } } } artifactoryPublish.skip = true // apply to all projects except the root ext { coreProjects = subprojects.findAll { p -> !p.name.contains("documentation") && !p.name.endsWith("-bom") } } configure(project.coreProjects) { apply plugin: 'java' apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' apply from: "${rootDir}/publishing.gradle" apply plugin: 'jacoco' tasks.withType(JavaCompile) { sourceCompatibility = "1.8" targetCompatibility = "1.8" options.deprecation = true options.encoding = 'UTF-8' options.compilerArgs += ["-Xlint:unchecked", "-parameters"] } tasks.withType(Javadoc){ options.encoding = 'UTF-8' } jmh { duplicateClassesStrategy = 'warn' } configurations.all { resolutionStrategy { failOnVersionConflict() } } } sonarqube { properties { property "sonar.projectName", "swagger2markup" property "sonar.projectKey", "swagger2markup_swagger2markup" property "sonar.links.homepage", "https://github.com/Swagger2Markup/swagger2markup" property "sonar.links.ci", "https://travis-ci.org/Swagger2Markup/swagger2markup" property "sonar.links.scm", "https://github.com/Swagger2Markup/swagger2markup" property "sonar.links.issue", "https://github.com/Swagger2Markup/swagger2markup/issues" property "sonar.language", "java" } } def allTestCoverageFile = "$buildDir/jacoco/allTestCoverage.exec" task jacocoMergeTest(type: JacocoMerge) { destinationFile = file(allTestCoverageFile) executionData = project.fileTree(dir: '.', include: '**/build/jacoco/test.exec') } task jacocoMerge(dependsOn: ['jacocoMergeTest']) { // used to run the other merge tasks } subprojects { sonarqube { properties { property "sonar.jacoco.reportPaths", allTestCoverageFile } } afterEvaluate { // exclude subprojects that don't produce a jar file or by design. if (!project.name.equals('swagger2markup-bom') && !project.name.equals('swagger2markup-documentation')) { jar { inputs.property('moduleName', moduleName) manifest.attributes( 'Automatic-Module-Name': moduleName ) } } } } tasks.check.dependsOn tasks.jacocoTestReport test { dependsOn(subprojects.test) // required by cobertura to aggregate report } artifactory { contextUrl = 'https://oss.jfrog.org' resolve { repository { repoKey = 'libs-release' maven = true } } publish { repository { repoKey = 'oss-snapshot-local' //The Artifactory repository key to publish to //when using oss.jfrog.org the credentials are from Bintray. For local build we expect them to be found in //~/.gradle/gradle.properties, otherwise to be set in the build server username = project.hasProperty('bintrayUsername') ? project.bintrayUsername : System.getenv('BINTRAY_USER') password = project.hasProperty('bintrayApiKey') ? project.bintrayApiKey : System.getenv('BINTRAY_KEY') } defaults { publications('mavenJava') } } if (System.properties['https.proxyHost']) { clientConfig.proxy.host = System.properties['https.proxyHost'] clientConfig.proxy.port = System.properties['https.proxyPort'].toInteger() } }