diff --git a/build.gradle b/build.gradle index fd09faf4..f635129f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,10 @@ buildscript { - ext.kotlinVersion = '1.3.50' + ext.kotlinVersion = '1.3.61' repositories { maven { url 'https://repo.spring.io/plugins-release' } } dependencies { - classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-beta.5' + classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-beta.6' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion" } @@ -14,11 +14,12 @@ plugins { id 'base' id 'project-report' id 'idea' - id 'org.sonarqube' version '2.7.1' + id 'org.sonarqube' version '2.8' id 'org.asciidoctor.convert' version '1.6.1' - id 'org.ajoberstar.grgit' version '3.1.1' - id 'io.spring.nohttp' version '0.0.3.RELEASE' - id 'io.spring.dependency-management' version '1.0.8.RELEASE' apply false + id 'org.ajoberstar.grgit' version '4.0.1' + id 'io.spring.nohttp' version '0.0.4.RELEASE' + id 'io.spring.dependency-management' version '1.0.9.RELEASE' apply false + id 'com.jfrog.artifactory' version '4.13.0' apply false } description = 'Spring AMQP' @@ -31,7 +32,7 @@ ext { linkScmUrl = 'https://github.com/spring-projects/spring-amqp' linkScmConnection = 'git://github.com/spring-projects/spring-amqp.git' linkScmDevConnection = 'git@github.com:spring-projects/spring-amqp.git' - docResourcesVersion = '0.1.0.RELEASE' + docResourcesVersion = '0.1.3.RELEASE' modifiedFiles = files(grgit.status().unstaged.modified).filter{ f -> f.name.endsWith('.java') || f.name.endsWith('.kt') } @@ -44,15 +45,15 @@ ext { jacksonVersion = '2.10.2.20200130' jaywayJsonPathVersion = '2.4.0' junit4Version = '4.12' - junitJupiterVersion = '5.5.2' + junitJupiterVersion = '5.6.0' log4jVersion = '2.12.1' logbackVersion = '1.2.3' - micrometerVersion = '1.3.3' + micrometerVersion = '1.3.5' mockitoVersion = '3.0.0' rabbitmqVersion = project.hasProperty('rabbitmqVersion') ? project.rabbitmqVersion : '5.7.3' rabbitmqHttpClientVersion = '3.2.0.RELEASE' reactorVersion = 'Dysprosium-SR5' - springDataCommonsVersion = '2.2.5.RELEASE' + springDataCommonsVersion = '2.3.0.M3' springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.2.4.RELEASE' springRetryVersion = '1.2.5.RELEASE' } @@ -104,7 +105,7 @@ ext { } subprojects { subproject -> - + apply plugin: 'java-library' apply plugin: 'java' apply from: "${rootProject.projectDir}/publish-maven.gradle" apply plugin: 'eclipse' @@ -115,8 +116,21 @@ subprojects { subproject -> apply plugin: 'kotlin' apply plugin: 'kotlin-spring' - sourceCompatibility=1.8 - targetCompatibility=1.8 + java { + withJavadocJar() + withSourcesJar() + registerFeature('optional') { + usingSourceSet(sourceSets.main) + } + registerFeature('provided') { + usingSourceSet(sourceSets.main) + } + } + + compileJava { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 + } eclipse { project { @@ -125,32 +139,32 @@ subprojects { subproject -> } jacoco { - toolVersion = '0.8.4' + toolVersion = '0.8.5' } // dependencies that are common across all java projects dependencies { compileOnly "com.google.code.findbugs:jsr305:$googleJsr305Version" - testCompile 'org.apache.logging.log4j:log4j-core' - testCompile "org.hamcrest:hamcrest-core:$hamcrestVersion" - testCompile ("org.mockito:mockito-core:$mockitoVersion") { + testImplementation 'org.apache.logging.log4j:log4j-core' + testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion" + testImplementation ("org.mockito:mockito-core:$mockitoVersion") { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - testCompile "org.mockito:mockito-junit-jupiter:$mockitoVersion" - testCompile 'org.springframework:spring-test' + testImplementation "org.mockito:mockito-junit-jupiter:$mockitoVersion" + testImplementation 'org.springframework:spring-test' - testRuntime 'org.apache.logging.log4j:log4j-jcl' + testRuntimeOnly 'org.apache.logging.log4j:log4j-jcl' - testCompile 'org.junit.jupiter:junit-jupiter-api' - testCompile 'org.junit.jupiter:junit-jupiter-params' - testRuntime 'org.junit.jupiter:junit-jupiter-engine' - testRuntime 'org.junit.platform:junit-platform-launcher' + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testImplementation 'org.junit.jupiter:junit-jupiter-params' + testImplementation 'org.junit.jupiter:junit-jupiter-engine' + testImplementation 'org.junit.platform:junit-platform-launcher' // To avoid compiler warnings about @API annotations in JUnit code testCompileOnly 'org.apiguardian:apiguardian-api:1.0.0' - testCompile 'org.jetbrains.kotlin:kotlin-reflect' - testCompile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' + testImplementation 'org.jetbrains.kotlin:kotlin-reflect' + testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' } @@ -183,6 +197,27 @@ subprojects { subproject -> } } + publishing { + publications { + mavenJava(MavenPublication) { + suppressAllPomMetadataWarnings() + from components.java + pom.withXml { + def pomDeps = asNode().dependencies.first() + subproject.configurations.providedImplementation.allDependencies.each { dep -> + pomDeps.remove(pomDeps.'*'.find { it.artifactId.text() == dep.name }) + pomDeps.appendNode('dependency').with { + it.appendNode('groupId', dep.group) + it.appendNode('artifactId', dep.name) + it.appendNode('version', dep.version) + it.appendNode('scope', 'provided') + } + } + } + } + } + } + task updateCopyrights { onlyIf { !System.getenv('TRAVIS') && !System.getenv('bamboo_buildKey') } inputs.files(modifiedFiles.filter { f -> f.path.contains(subproject.name) }) @@ -216,7 +251,6 @@ subprojects { subproject -> test { jacoco { - append = false destinationFile = file("$buildDir/jacoco.exec") } if (isTravisBuild) { @@ -244,30 +278,15 @@ subprojects { subproject -> useJUnitPlatform() } - task sourcesJar(type: Jar) { - classifier = 'sources' - from sourceSets.main.allJava - } - - task javadocJar(type: Jar) { - classifier = 'javadoc' - from javadoc - } - checkstyle { configFile = file("${rootDir}/src/checkstyle/checkstyle.xml") toolVersion = '8.24' } - artifacts { - archives sourcesJar - archives javadocJar - } - jar { manifest { attributes( - 'Implementation-Version': version, + 'Implementation-Version': archiveVersion, 'Created-By': "JDK ${System.properties['java.version']} (${System.properties['java.specification.vendor']})", 'Implementation-Title': subproject.name, 'Implementation-Vendor-Id': subproject.group, @@ -295,26 +314,25 @@ project('spring-amqp') { dependencies { - compile 'org.springframework:spring-core' - compile ('org.springframework:spring-messaging', optional) - compile ('org.springframework:spring-oxm', optional) - compile ('org.springframework:spring-context', optional) - compile ("org.springframework.retry:spring-retry:$springRetryVersion") { + api 'org.springframework:spring-core' + optionalApi 'org.springframework:spring-messaging' + optionalApi 'org.springframework:spring-oxm' + optionalApi 'org.springframework:spring-context' + api ("org.springframework.retry:spring-retry:$springRetryVersion") { exclude group: 'org.springframework' } - compile ('com.fasterxml.jackson.core:jackson-core', optional) - compile ('com.fasterxml.jackson.core:jackson-databind', optional) - compile ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml', optional) + optionalApi 'com.fasterxml.jackson.core:jackson-core' + optionalApi 'com.fasterxml.jackson.core:jackson-databind' + optionalApi 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' // Spring Data projection message binding support - compile ("org.springframework.data:spring-data-commons:$springDataCommonsVersion") { - optional(it) + optionalApi ("org.springframework.data:spring-data-commons:$springDataCommonsVersion") { exclude group: 'org.springframework' } - compile ("com.jayway.jsonpath:json-path:$jaywayJsonPathVersion", optional) + optionalApi "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion" - testCompile "org.assertj:assertj-core:$assertjVersion" + testImplementation "org.assertj:assertj-core:$assertjVersion" } } @@ -324,23 +342,35 @@ project('spring-rabbit') { dependencies { - compile project(':spring-amqp') - compile "com.rabbitmq:amqp-client:$rabbitmqVersion" - compile ("com.rabbitmq:http-client:$rabbitmqHttpClientVersion", optional) - compile ('org.springframework:spring-aop', optional) - compile 'org.springframework:spring-context' - compile 'org.springframework:spring-messaging' - compile 'org.springframework:spring-tx' - compile ('io.projectreactor:reactor-core', optional) - compile ("ch.qos.logback:logback-classic:$logbackVersion", optional) - compile ('org.apache.logging.log4j:log4j-core', optional) - compile ("io.micrometer:micrometer-core:$micrometerVersion", optional) + api project(':spring-amqp') + api "com.rabbitmq:amqp-client:$rabbitmqVersion" + optionalApi "com.rabbitmq:http-client:$rabbitmqHttpClientVersion" + optionalApi 'org.springframework:spring-aop' + api 'org.springframework:spring-context' + api 'org.springframework:spring-messaging' + api 'org.springframework:spring-tx' + optionalApi 'io.projectreactor:reactor-core' + optionalApi "ch.qos.logback:logback-classic:$logbackVersion" + optionalApi 'org.apache.logging.log4j:log4j-core' + optionalApi "io.micrometer:micrometer-core:$micrometerVersion" + // Spring Data projection message binding support + optionalApi ("org.springframework.data:spring-data-commons:$springDataCommonsVersion") { + exclude group: 'org.springframework' + } + optionalApi "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion" + + testApi project(':spring-rabbit-junit') + testImplementation("com.willowtreeapps.assertk:assertk-jvm:$assertkVersion") + testRuntimeOnly 'org.springframework:spring-web' + testRuntimeOnly "org.apache.httpcomponents:httpclient:$commonsHttpClientVersion" + testRuntimeOnly 'com.fasterxml.jackson.core:jackson-core' + testRuntimeOnly 'com.fasterxml.jackson.core:jackson-databind' + testRuntimeOnly 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' + testRuntimeOnly 'com.fasterxml.jackson.module:jackson-module-kotlin' + testRuntimeOnly ("junit:junit:$junit4Version") { + exclude group: 'org.hamcrest', module: 'hamcrest-core' + } - testCompile project(':spring-rabbit-junit') - testCompile("com.willowtreeapps.assertk:assertk-jvm:$assertkVersion") - testRuntime 'org.springframework:spring-web' - testRuntime "org.apache.httpcomponents:httpclient:$commonsHttpClientVersion" - testRuntime 'com.fasterxml.jackson.module:jackson-module-kotlin' } compileTestKotlin { @@ -356,21 +386,20 @@ project('spring-rabbit-junit') { dependencies { // no spring-amqp dependencies allowed - compile 'org.springframework:spring-core' - compile 'org.springframework:spring-test' - compile ("junit:junit:$junit4Version") { - optional(it) + api 'org.springframework:spring-core' + api 'org.springframework:spring-test' + optionalApi ("junit:junit:$junit4Version") { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - compile "com.rabbitmq:amqp-client:$rabbitmqVersion" - compile ("com.rabbitmq:http-client:$rabbitmqHttpClientVersion") { + api "com.rabbitmq:amqp-client:$rabbitmqVersion" + api ("com.rabbitmq:http-client:$rabbitmqHttpClientVersion") { exclude group: 'org.springframework', module: 'spring-web' } - compile 'org.springframework:spring-web' - compile ('org.junit.jupiter:junit-jupiter-api', optional) - compile "org.assertj:assertj-core:$assertjVersion" - compile ("ch.qos.logback:logback-classic:$logbackVersion", optional) - compile ('org.apache.logging.log4j:log4j-core', optional) + api 'org.springframework:spring-web' + optionalApi 'org.junit.jupiter:junit-jupiter-api' + api "org.assertj:assertj-core:$assertjVersion" + optionalApi "ch.qos.logback:logback-classic:$logbackVersion" + optionalApi 'org.apache.logging.log4j:log4j-core' compileOnly 'org.apiguardian:apiguardian-api:1.0.0' } @@ -382,12 +411,12 @@ project('spring-rabbit-test') { dependencies { - compile project(':spring-rabbit') - compile project(':spring-rabbit-junit') - compile "org.hamcrest:hamcrest-library:$hamcrestVersion" - compile "org.hamcrest:hamcrest-core:$hamcrestVersion" - compile "org.mockito:mockito-core:$mockitoVersion" - testCompile project(':spring-rabbit').sourceSets.test.output + api project(':spring-rabbit') + api project(':spring-rabbit-junit') + api "org.hamcrest:hamcrest-library:$hamcrestVersion" + api "org.hamcrest:hamcrest-core:$hamcrestVersion" + api "org.mockito:mockito-core:$mockitoVersion" + testImplementation project(':spring-rabbit').sourceSets.test.output } } @@ -409,45 +438,55 @@ task prepareAsciidocBuild(type: Sync) { into "$buildDir/asciidoc" } -task reference(type: org.asciidoctor.gradle.AsciidoctorTask) { - backends = ['pdf'] +task('makePDF', type: org.asciidoctor.gradle.AsciidoctorTask) { + dependsOn prepareAsciidocBuild + backends 'pdf' sourceDir "$buildDir/asciidoc" sources { - include 'index.adoc' - } + include 'index-single.adoc' + } options doctype: 'book', eruby: 'erubis' - attributes 'source-highlighter': 'coderay', - 'icons': 'font', - "project-version=$project.version" + attributes 'icons': 'font', + 'sectanchors': '', + 'sectnums': '', + 'toc': '', + 'source-highlighter' : 'coderay', + revnumber: project.version } -reference.dependsOn asciidoctor - asciidoctor { + dependsOn makePDF + backends 'html5' sourceDir "$buildDir/asciidoc" - sources { - include 'index.adoc' - } resources { from(sourceDir) { include 'images/*', 'css/**', 'js/**' } } - logDocuments = true - backends = ['html5'] options doctype: 'book', eruby: 'erubis' + attributes 'docinfo': 'shared', - stylesdir: 'css/', + stylesdir: "css/", stylesheet: 'spring.css', 'linkcss': true, 'icons': 'font', + 'sectanchors': '', 'source-highlighter=highlight.js', 'highlightjsdir=js/highlight', - 'highlightjs-theme=atom-one-dark-reasonable', - "project-version=$project.version" + 'highlightjs-theme': 'github', + 'idprefix': '', + 'idseparator': '-', + 'spring-version': project.version, + 'allow-uri-read': '', + 'toc': 'left', + 'toclevbels': '4', + revnumber: project.version } -asciidoctor.dependsOn prepareAsciidocBuild +task reference(dependsOn: asciidoctor) { + group = 'Documentation' + description = 'Generate the reference documentation' +} sonarqube { properties { @@ -483,8 +522,8 @@ task api(type: Javadoc) { task schemaZip(type: Zip) { group = 'Distribution' - classifier = 'schema' - description = "Builds -${classifier} archive containing all " + + archiveClassifier = 'schema' + description = "Builds -${archiveClassifier} archive containing all " + "XSDs for deployment at static.springframework.org/schema." subprojects.each { subproject -> @@ -513,8 +552,8 @@ task schemaZip(type: Zip) { task docsZip(type: Zip, dependsOn: [reference]) { group = 'Distribution' - classifier = 'docs' - description = "Builds -${classifier} archive containing api and reference " + + archiveClassifier = 'docs' + description = "Builds -${archiveClassifier} archive containing api and reference " + "for deployment at static.springframework.org/spring-integration/docs." from('src/dist') { @@ -537,8 +576,8 @@ task docsZip(type: Zip, dependsOn: [reference]) { task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { group = 'Distribution' - classifier = 'dist' - description = "Builds -${classifier} archive, containing all jars and docs, " + + archiveClassifier = 'dist' + description = "Builds -${archiveClassifier} archive, containing all jars and docs, " + "suitable for community download page." ext.baseDir = "${project.name}-${project.version}"; @@ -572,9 +611,9 @@ task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { // Not published by default; only for use when building from source. task depsZip(type: Zip, dependsOn: distZip) { zipTask -> group = 'Distribution' - classifier = 'dist-with-deps' - description = "Builds -${classifier} archive, containing everything " + - "in the -${distZip.classifier} archive plus all dependencies." + archiveClassifier = 'dist-with-deps' + description = "Builds -${archiveClassifier} archive, containing everything " + + "in the -${distZip.archiveClassifier} archive plus all dependencies." from zipTree(distZip.archivePath) @@ -610,3 +649,14 @@ task dist(dependsOn: assemble) { group = 'Distribution' description = 'Builds -dist, -docs and -schema distribution archives.' } + +apply from: "${rootProject.projectDir}/publish-maven.gradle" + +publishing { + publications { + mavenJava(MavenPublication) { + artifact docsZip + artifact distZip + } + } +} diff --git a/gradle.properties b/gradle.properties index 98ebd5c1..2f603388 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,3 @@ -version=2.2.6.BUILD-SNAPSHOT +version=2.3.0.BUILD-SNAPSHOT org.gradle.daemon=true +org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf0..f3d88b1c 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5028f28f..1b16c34a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 83f2acfd..2fe81a7d 100755 --- a/gradlew +++ b/gradlew @@ -154,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -175,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/publish-maven.gradle b/publish-maven.gradle index 43ae605d..a36a4bf1 100644 --- a/publish-maven.gradle +++ b/publish-maven.gradle @@ -1,102 +1,86 @@ -apply plugin: 'maven' +apply plugin: 'maven-publish' +apply plugin: 'com.jfrog.artifactory' -ext.optionalDeps = [] -ext.providedDeps = [] - -ext.optional = { optionalDeps << it } -ext.provided = { providedDeps << it } - -install { - repositories.mavenInstaller { - customizePom(pom, project) - } -} - -def customizePom(pom, gradleProject) { - pom.whenConfigured { generatedPom -> - - // sort to make pom dependencies order consistent to ease comparison of older poms - generatedPom.dependencies = generatedPom.dependencies.sort { dep -> - "$dep.scope:$dep.groupId:$dep.artifactId" - } - - def managedVersions = dependencyManagement.managedVersions - generatedPom.dependencies.findAll{dep -> !dep.version }.each { dep -> - dep.version = managedVersions["${dep.groupId}:${dep.artifactId}"] - } - - // respect 'optional' and 'provided' dependencies - gradleProject.optionalDeps.each { dep -> - generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true - } - gradleProject.providedDeps.each { dep -> - generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided' - } - - // eliminate test-scoped dependencies (no need in maven central poms) - generatedPom.dependencies.removeAll { dep -> - dep.scope == 'test' - } - - // add all items necessary for maven central publication - generatedPom.project { - name = gradleProject.description - description = gradleProject.description - url = linkHomepage - organization { - name = 'SpringIO' - url = 'https://spring.io' - } - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'https://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' +publishing { + publications { + mavenJava(MavenPublication) { + pom { + afterEvaluate { + name = project.description + description = project.description } - } - scm { url = linkScmUrl - connection = 'scm:git:' + linkScmConnection - developerConnection = 'scm:git:' + linkScmDevConnection + organization { + name = 'Spring IO' + url = 'https://spring.io/projects/spring-kafka' + } + licenses { + license { + name = 'Apache License, Version 2.0' + url = 'https://www.apache.org/licenses/LICENSE-2.0.txt' + distribution = 'repo' + } + } + scm { + url = linkScmUrl + connection = linkScmConnection + developerConnection = linkScmDevConnection + } + developers { + developer { + id = 'garyrussell' + name = 'Gary Russell' + email = 'grussell@pivotal.io' + roles = ['project lead'] + } + developer { + id = 'artembilan' + name = 'Artem Bilan' + email = 'abilan@pivotal.io' + } + developer { + id = 'dsyer' + name = 'Dave Syer' + email = 'dsyer@pivotal.io' + } + developer { + id = 'markfisher' + name = 'Mark Fisher' + email = 'mfisher@pivotal.io' + } + developer { + id = 'mpollack' + name = 'Mark Pollack' + email = 'mpollack@pivotal.io' + } + developer { + id = 'jbrisbin' + name = 'Jon Brisbin' + email = 'jbrisbin@pivotal.io' + } + developer { + id = 'tomas.lukosius' + name = 'Tomas Lukosius' + email = 'tomas.lukosius@opencredo.com' + } + } + issueManagement { + system = 'GitHub' + url = linkIssue + } } - developers { - developer { - id = 'garyrussell' - name = 'Gary Russell' - email = 'grussell@pivotal.io' - roles = ['project lead'] + versionMapping { + usage('java-api') { + fromResolutionResult() } - developer { - id = 'artembilan' - name = 'Artem Bilan' - email = 'abilan@pivotal.io' - } - developer { - id = 'dsyer' - name = 'Dave Syer' - email = 'dsyer@pivotal.io' - } - developer { - id = 'markfisher' - name = 'Mark Fisher' - email = 'mfisher@pivotal.io' - } - developer { - id = 'mpollack' - name = 'Mark Pollack' - email = 'mpollack@pivotal.io' - } - developer { - id = 'jbrisbin' - name = 'Jon Brisbin' - email = 'jbrisbin@pivotal.io' - } - developer { - id = 'tomas.lukosius' - name = 'Tomas Lukosius' - email = 'tomas.lukosius@opencredo.com' + usage('java-runtime') { + fromResolutionResult() } } } } } + +artifactoryPublish { + publications(publishing.publications.mavenJava) +}