gradle java Плагин "Jar" ​​задача из блока API "из" раздела - PullRequest
0 голосов
/ 19 апреля 2020

Я вижу, что следующий код является допустимым синтаксисом для конфигурации задачи jar. Моя путаница заключается в том, что grad для задачи Jar делает c, задает три метода "from": https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html Но ни один из них соответствует подписи, используемой в приведенном ниже коде enter image description here:

jar { // configure the jar archiving
  from {
    project.configurations.runtimeClasspath.collect {
      File file -> project.zipTree(file)
    }
  }
}

Я не могу понять, какой раздел from используется в соответствии с API, поскольку подпись не соответствует ни одному методу в API делай c.

1 Ответ

0 голосов
/ 19 апреля 2020

Метод from принимает Object в качестве входного аргумента, который может быть любым. В документации метода указано, что значения будут оцениваться с помощью Project.files

https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org .gradle.api.Project: files (java .lang.Object [])

В документации описываются различные типы, которые он принимает, включая Groovy Замыкания.

Таким образом, замыкание будет оценено как Project.files и преобразовано в экземпляр ConfigurableFileCollection

...