Как перечислить только разрешенные зависимости runtimeClasspath в Gradle во время сборки? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь создать задачу в моей сборке, в которой будут перечислены все зависимости runtimeClasspath до сборки проекта. Таким образом, по сути, она должна быть эквивалентна следующей команде, но для всех подпроектов:

gradle dependencies --configuration runtimeClasspath

До сих пор мне удалось придумать задачу, в которой перечислены все зависимости:

subprojects {
   task listDependencies(type: DependencyReportTask) {}

   complileJava.dependsOn listDependencies
}

Он прекрасно работает в том смысле, что в нем перечислены все зависимости всех подпроектов, но, как упоминалось выше, он также перечисляет много вещей, которые мне не нужно видеть.

Как ограничить вывод вышеуказанной задачи просто в runtimeClasspath?

Спасибо!

1 Ответ

1 голос
/ 28 апреля 2020

Поскольку вы определяете задачу типа DependencyReportTask, вы можете настроить ее свойство конфигурации, которое будет эквивалентно флагу --configuration в CLI.

Так что-то вроде:

subprojects {
    def listDeps = tasks.register("listDependencies", DependencyReportTask) {
        setConfiguration("runtimeClasspath")
    }

    tasks.withType(JavaCompile).configureEach {
        dependsOn(listDeps)
    }
}

Обратите внимание, что печать runtimeClasspath перед выполнением compileJava немного странная. Путь к классу, используемый задачей компиляции, будет compileClasspath.

Отредактирован для использования API отложенной задачи, так как в противном случае проблема с порядком в приложении плагина

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...