143 lines
4.3 KiB
Groovy
143 lines
4.3 KiB
Groovy
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()
|
|
}
|
|
}
|