Unable to figure out exhaustive list of Spring int

2019-08-20 08:07发布

问题:

I'm trying to use spring-integration for publishing, subscribing from sqs. I started with the following for my gradle dependancies:

compile group: 'org.springframework.cloud', name: 'spring-cloud-aws-messaging', version: '1.0.0.RELEASE'
compile group: 'org.springframework.integration', name: 'spring-integration-aws', version: '1.0.0.RELEASE'

It was complaining about:

ClassNotFoundException:org.springframework.cloud.
aws.messaging.listener.SqsMessageD‌​eletionPolicy

I then went ahead and added:

compile group: 'org.springframework.cloud', name: 'spring-cloud-
starter-aws', version: '1.0.1.RELEASE'
compile group: 'org.springframework.cloud', name: 'spring-cloud-
dependencies', version: 'Brixton.RELEASE', ext: 'pom'

and now I get:

nested exception is java.io.FileNotFoundException: class path resource [org/springframework/cloud/aws/jdbc/config/annotation/AmazonRdsInstanceConfiguration$AbstractRegistrar.class] cannot be opened because it does not exist

I don't use jdbc in my project at all so I think I'm using the wrong set of dependancies. What am i doing wrong here? Can someone help with the complete list of transitive dependancies I need to use?

回答1:

You should use this combination:

compile group: 'org.springframework.integration', name: 'spring-integration-aws', version: '1.0.0.RELEASE'
compile group: 'org.springframework.cloud', name: 'spring-cloud-aws-messaging', version: '1.1.0.RELEASE'

Nothing more as far as I know.

Right, the spring-cloud-aws-messaging dependency of the spring-integration-aws is optional, but the version used for spring-integration-aws:1.0.0.RELEASE is definitely 1.1.0.RELEASE, not 1.0.0.RELEASE.