GH-157: Fix optional dependencies for pom

Fixes https://github.com/spring-projects/spring-integration-aws/issues/157

It turns out that `implementation` provides a `runtime` dependency in
Maven's POM, which is not what we would expect to behave as an `optional`

* Apply Gradle variants for those dependencies which should be as
`optional` in the generate POM
* Some Gradle build config refactoring
This commit is contained in:
Artem Bilan
2019-12-02 15:05:51 -05:00
parent 9aa3ba4d0b
commit b290e54362
2 changed files with 17 additions and 12 deletions

View File

@@ -7,7 +7,7 @@ plugins {
id 'checkstyle'
id 'org.ajoberstar.grgit' version '4.0.0'
id "io.spring.dependency-management" version '1.0.8.RELEASE'
id 'com.jfrog.artifactory' version '4.10.0' apply false
id 'com.jfrog.artifactory' version '4.11.0'
}
description = 'Spring Integration AWS Support'
@@ -60,6 +60,9 @@ compileJava {
java {
withJavadocJar()
withSourcesJar()
registerFeature('optional') {
usingSourceSet(sourceSets.main)
}
}
sourceSets {
@@ -100,18 +103,18 @@ dependencies {
api 'org.springframework.cloud:spring-cloud-aws-core'
api 'com.fasterxml.jackson.core:jackson-databind'
implementation 'org.springframework.cloud:spring-cloud-aws-messaging'
implementation 'org.springframework.integration:spring-integration-file'
implementation 'org.springframework.integration:spring-integration-http'
optionalApi 'org.springframework.cloud:spring-cloud-aws-messaging'
optionalApi 'org.springframework.integration:spring-integration-file'
optionalApi 'org.springframework.integration:spring-integration-http'
implementation "com.amazonaws:amazon-kinesis-client:$kinesisClientVersion"
implementation "com.amazonaws:amazon-kinesis-producer:$kinesisProducerVersion"
optionalApi "com.amazonaws:amazon-kinesis-client:$kinesisClientVersion"
optionalApi "com.amazonaws:amazon-kinesis-producer:$kinesisProducerVersion"
implementation 'com.amazonaws:aws-java-sdk-kinesis'
implementation 'com.amazonaws:aws-java-sdk-dynamodb'
implementation "com.amazonaws:dynamodb-lock-client:$dynamodbLockClientVersion"
optionalApi 'com.amazonaws:aws-java-sdk-kinesis'
optionalApi 'com.amazonaws:aws-java-sdk-dynamodb'
optionalApi "com.amazonaws:dynamodb-lock-client:$dynamodbLockClientVersion"
implementation "javax.servlet:javax.servlet-api:$servletApiVersion"
optionalApi "javax.servlet:javax.servlet-api:$servletApiVersion"
testImplementation ('org.springframework.integration:spring-integration-test') {
exclude group: 'junit'
@@ -231,7 +234,9 @@ task schemaZip(type: Zip) {
description = "Builds -${archiveClassifier} archive containing all " +
"XSDs for deployment at static.springframework.org/schema."
def Properties schemas = new Properties();
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
Properties schemas = new Properties();
def shortName = idPrefix.replaceFirst("${idPrefix}-", '')
project.sourceSets.main.resources.find {

View File

@@ -1,9 +1,9 @@
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'
publishing {
publications {
mavenJava(MavenPublication) {
suppressAllPomMetadataWarnings()
from components.java
artifact docsZip
artifact schemaZip