Как я могу узнать, что означает файл configurations.default.collect в Gradle? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь собрать банку из проекта kotlin / gradle. Недавно я наткнулся на это исключение:

Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics

К счастью, я нашел это репо , которое уже решает это. Тем не менее, я не могу найти конкретную c документацию по этому блоку:

configurations.default.collect {
    it.isDirectory() ? it : zipTree(it)

Я имею в виду, я хочу понять, чтобы иметь возможность самостоятельно найти возможные решения в будущем, когда у меня будут другие Gradle проблемы. Но, похоже, это возникло из ниоткуда. Например, здесь , у нас есть configurations.compile.collect. В чем может быть разница?

1 Ответ

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

Вам необходимо иметь solid понимание Gradle и некоторое понимание Groovy, чтобы понять, что происходит.

jar {
    from {
        configurations.default.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
}
  • jar относится к Jar Задача Gradle . Таким образом, автор настраивает задачу jar.

  • Автор вызывает from(java.lang.Object[]) и предоставляет список каталогов или ZIP-файл.

  • configurations относится к ConfigurationContainer, это основной способ Gradle для размещения зависимостей в «ведра».
  • configurations.default говорит: «Дай мне конфигурация с именем 'default'. " Существует множество других контейнеров методов, которые предоставляет Gradle. См. Javado c здесь .
  • .collect { } - это метод Groovy. Вы можете прочитать об этом здесь
  • Наконец zipTree() - метод, предоставленный Gradle. Вы можете прочитать его Javado c здесь
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...