Почему uploadArchives отсутствует в списке задач? - PullRequest
8 голосов
/ 12 декабря 2011

Я думал, что uploadArchives - это задача, которая предоставляется плагином Java. В моем build.gradle я использую плагин Java:

apply plugin: 'java'

Но если я вызову gradle tasks в командной строке, я не смогу увидеть задачу uploadArchives.

Даже не с Gradle gradle tasks --all

Задача uploadArchives указана в документации по подключаемому плагину Java. см http://www.gradle.org/java_plugin (таблица 11).

Я использую версию Gradle 1.0-milestone-6.

Я могу вызвать gradle uploadArchives без ошибок, но задача не указана.

Ответы [ 2 ]

9 голосов
/ 13 декабря 2011

Задача uploadArchives добавляется в качестве правила в сценарий сборки, а не по имени. В выводе "gradle tasks" вы должны увидеть следующую строку:

Pattern: upload<ConfigurationName>: Assembles and uploads the artifacts belonging to a configuration.

Это означает, что для каждой конфигурации в вашем файле сборки существует соответствующая задача загрузки. Плагин java добавляет конфигурацию с именем archives в ваш скрипт сборки. При добавлении конфигурационных «архивов» в сценарий сборки явным образом с помощью плагина java также неявно добавляется задача uploadArchives.

Существуют сценарии, когда gradle не может знать, какие задачи должны быть выполнены правилом.

например.

tasks.addRule("Pattern: ping<ID>") { String taskName ->
    if (taskName.startsWith("ping")) {
        task(taskName) << {
            println "Pinging: " + (taskName - 'ping')
        }
    }
}

Невозможно выяснить, какие задачи ping следует отображать, поскольку они только материализуются при запуске из командной строки через 'gradle pingServer1 pingServer2 pingServer3'

С уважением, Рене

1 голос
/ 13 декабря 2011

Задача uploadArchives является частью подключаемого модуля maven.Вы должны добавить:

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