Переходные зависимости файлов в gradle

Я хотел бы контролировать, какие из моих зависимостей в многопроектной Java-сборке являются переходными. Мое текущее решение заключается в установке конфигурации "экспорта" в корневом проекте:

allprojects {
    configurations {
        export {
            description = 'Exported classpath'
        }
        compile {
            extendsFrom export
        }
    }
}

Проект A имеет несколько файловых зависимостей:

dependencies {
    compile files('A.jar', 'B.jar')
    export files('C.jar')
}

Проект B имеет зависимость от проекта A, но только C. jar должен быть в classpath для компиляции, поэтому добавьте:

dependencies {
    export project(path: ':A', configuration:'export')
}

Это дает желаемые результаты, A.jar и B.jar не находятся в пути класса, но C.jar находится в classpath для компиляции.

Я не уверен, что это "gradle" способ делать вещи. Для настройки транзитивности я бы предпочел указать атрибут или закрытие конфигурации для записей зависимостей в проекте A, а не использовать другую конфигурацию "экспорта".

Возможно ли это для файловых зависимостей, или есть другой способ добиться этого?

9
задан SK9 24 August 2013 в 05:57
поделиться