Gradle — исключить зависимости зависимостей

#gradle #dependencies

#gradle #зависимости

Вопрос:

Я перевожу свой проект на использование Gradle. И у меня есть набор моих собственных зависимостей, которые я хочу включить в окончательный jar

 dependencies {
    implementation group: 'commons-io', name: 'commons-io', version: 'latest.release'

    implementation group: 'com.amazonaws', name: 'aws-java-sdk-core', version: 'latest.release'
    implementation group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: 'latest.release'
    implementation group: 'com.amazonaws', name: 'aws-java-sdk-sqs', version: 'latest.release'
    implementation group: 'com.amazonaws', name: 'aws-java-sdk-dynamodb', version: 'latest.release'
    // etc
  

но у них есть свои собственные зависимости, которые я не хочу включать. Как мне включить ТОЛЬКО, например commons-io:commons-io:latest.release , без разрешения их зависимостей?

Я пытался

 configurations {
    compileClasspath.transitive = false
}
  

но в этом случае все мои зависимости исключены.

Спасибо!

Ответ №1:

Рассмотрим следующее (рабочий пример здесь):

 dependencies {
    implementation('com.amazonaws:aws-java-sdk-core:latest.release') {
        transitive = false
    }
}
  

Обратите внимание, что commons-io это не лучший пример, поскольку он не имеет зависимостей во время выполнения.