diff --git a/build.gradle b/build.gradle index f4479cef..0ca258b8 100644 --- a/build.gradle +++ b/build.gradle @@ -16,13 +16,9 @@ version = '0.1.6-SNAPSHOT' group = 'io.github.robwin' apply plugin: 'java' -apply plugin: 'maven-publish' apply plugin: 'org.asciidoctor.convert' -apply plugin: 'jacoco' -apply plugin: 'com.github.kt3k.coveralls' -apply plugin: 'com.jfrog.bintray' -apply plugin: "com.jfrog.artifactory" apply from: 'gradle/publishing.gradle' +apply from: 'gradle/coverage.gradle' tasks.withType(JavaCompile) { sourceCompatibility = "1.7" @@ -48,21 +44,6 @@ dependencies { testCompile 'ch.qos.logback:logback-classic:1.1.6' } -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar -} - asciidoctor { backends = ['html5', 'pdf'] attributes = [ @@ -74,43 +55,6 @@ asciidoctor { sourceDir "build/tmp" } -artifactory { - contextUrl = 'https://oss.jfrog.org' - resolve { - repository { - repoKey = 'libs-release' - } - } - 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() - } - -} - -jacocoTestReport { - reports { - xml.enabled = true // coveralls plugin depends on xml format report - html.enabled = true - } -} - -tasks.coveralls { - dependsOn 'check' -} - tasks.asciidoctor { dependsOn 'check' } diff --git a/gradle/coverage.gradle b/gradle/coverage.gradle new file mode 100644 index 00000000..d8a32f80 --- /dev/null +++ b/gradle/coverage.gradle @@ -0,0 +1,13 @@ +apply plugin: 'jacoco' +apply plugin: 'com.github.kt3k.coveralls' + +jacocoTestReport { + reports { + xml.enabled = true // coveralls plugin depends on xml format report + html.enabled = true + } +} + +tasks.coveralls { + dependsOn 'check' +} \ No newline at end of file diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index c5cfa104..349d20a3 100644 --- a/gradle/publishing.gradle +++ b/gradle/publishing.gradle @@ -1,24 +1,44 @@ import java.text.SimpleDateFormat +apply plugin: 'maven-publish' +apply plugin: 'com.jfrog.bintray' +apply plugin: "com.jfrog.artifactory" + Date buildTimeAndDate = new Date() ext { buildDate = new SimpleDateFormat('yyyy-MM-dd').format(buildTimeAndDate) buildTime = new SimpleDateFormat('HH:mm:ss.SSSZ').format(buildTimeAndDate) + projectUrl = 'https://github.com/RobWin/markup-document-builder' + licenseUrl = 'https://github.com/RobWin/markup-document-builder/blob/master/LICENSE.txt' + scmUrl = 'https://github.com/RobWin/markup-document-builder.git' + issueTrackerUrl = 'https://github.com/RobWin/markup-document-builder/issues' } -def projectArtifactId = 'markup-document-builder' +task sourcesJar(type: Jar, dependsOn: classes) { + classifier = 'sources' + from sourceSets.main.allSource +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives sourcesJar + archives javadocJar +} jar { manifest { attributes( - 'Built-By': 'Robert Winkler', 'Created-By': System.properties['java.version'] + " (" + System.properties['java.vendor'] + " " + System.properties['java.vm.version'] + ")", - 'Build-Date': project.buildDate, - 'Build-Time': project.buildTime, - 'Specification-Title': projectArtifactId, - 'Specification-Version': project.version, - 'Implementation-Title': projectArtifactId, - 'Implementation-Version': project.version + 'Built-With': "gradle-${project.getGradle().getGradleVersion()}, groovy-${GroovySystem.getVersion()}", + 'Build-Time': "${new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")}", + 'Specification-Title': "${project.name}", + 'Specification-Version': project.version.toString(), + 'Implementation-Title': "${project.name}", + 'Implementation-Version': project.version.toString() ) } } @@ -29,35 +49,6 @@ if (!project.hasProperty('gpgPassphrase')) ext.gpgPassphrase = '' if (!project.hasProperty('ossUser')) ext.ossUser = '' if (!project.hasProperty('ossPassword')) ext.ossPassword = '' -bintray { - user = project.bintrayUsername - key = project.bintrayApiKey - dryRun = false //Whether to run this as dry-run, without deploying - publish = true //If version should be auto published after an upload - publications = ['mavenJava'] - pkg { - repo = 'maven' - name = 'markup-document-builder' - websiteUrl = 'https://github.com/RobWin/markup-document-builder' - issueTrackerUrl = 'https://github.com/RobWin/markup-document-builder/issues' - vcsUrl = 'https://github.com/RobWin/markup-document-builder.git' - desc = 'A Markup (Markdown, AsciiDoc) document builder.' - licenses = ['Apache-2.0'] - version { - vcsTag = project.version - gpg { - sign = true //Determines whether to GPG sign the files. The default is false - passphrase = project.gpgPassphrase //Optional. The passphrase for GPG signing' - } - mavenCentralSync { - sync = true //Optional (true by default). Determines whether to sync the version to Maven Central. - user = ossUser //OSS user token - password = ossPassword //OSS user password - } - } - } -} - publishing { publications { mavenJava(MavenPublication) { @@ -74,17 +65,17 @@ publishing { it.scope*.value = 'compile' } - root.appendNode('name', 'markup-document-builder') + root.appendNode('name', project.name) root.appendNode('packaging', 'jar') - root.appendNode('url', 'https://github.com/RobWin/markup-document-builder') - root.appendNode('description', 'A Markup (Markdown, AsciiDoc) document builder.') + root.appendNode('url', projectUrl) + root.appendNode('description', project.description) def license = root.appendNode('licenses').appendNode('license') license.appendNode('name', 'Apache-2.0') - license.appendNode('url', 'https://github.com/RobWin/markup-document-builder/blob/master/LICENSE.txt') + license.appendNode('url', licenseUrl) license.appendNode('distribution', 'repo') - root.appendNode('scm').appendNode('url', 'https://github.com/RobWin/markup-document-builder.git') + root.appendNode('scm').appendNode('url', scmUrl) def developers = root.appendNode('developers') devs.each { @@ -97,4 +88,63 @@ publishing { artifact javadocJar } } +} + +bintray { + user = project.bintrayUsername + key = project.bintrayApiKey + dryRun = false //Whether to run this as dry-run, without deploying + publish = true //If version should be auto published after an upload + publications = ['mavenJava'] + pkg { + repo = 'maven' + name = 'swagger2markup' + websiteUrl = projectUrl + issueTrackerUrl = issueTrackerUrl + vcsUrl = scmUrl + desc = rootProject.description + licenses = ['Apache-2.0'] + version { + vcsTag = rootProject.version + gpg { + sign = true //Determines whether to GPG sign the files. The default is false + passphrase = project.gpgPassphrase //Optional. The passphrase for GPG signing' + } + mavenCentralSync { + sync = true //Optional (true by default). Determines whether to sync the version to Maven Central. + user = ossUser //OSS user token + password = ossPassword //OSS user password + } + } + } +} + +artifactory { + contextUrl = 'https://oss.jfrog.org' + resolve { + repository { + repoKey = 'libs-release' + } + } + 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() + } + +} + +tasks.artifactoryPublish { + dependsOn 'check' } \ No newline at end of file