为什么uploadArchives没有列在任务列表中?

Cen*_*giz 8 gradle

我认为uploadArchives是一个由java插件提供的任务.在我的build.gradle中,我使用java插件:

apply plugin: 'java'
Run Code Online (Sandbox Code Playgroud)

但是如果我gradle tasks在命令行上调用,我看不到uploadArchives任务.

即使没有gradle gradle tasks --all

uploadArchives任务列在gradle java插件文档中,请参阅http://www.gradle.org/java_plugin(表11).

我使用gradle版本1.0-milestone-6.

我可以gradle uploadArchives无错误地调用,但是没有列出任务.

Ren*_*hke 9

uploadArchives任务作为规则添加到构建脚本中,而不是按名称显式添加.在"gradle tasks"的输出中,您应该看到以下行:

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

这意味着,对于构建文件中的每个配置,存在相应的uploadTask.java插件将一个名为archives的配置添加到您的构建脚本中.通过java插件显式地将配置"archives"添加到构建脚本中,也会隐式添加uploadArchives任务.

有些情况下,gradle无法知道规则需要实现哪些任务.

例如

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

没有办法弄清楚应该显示哪些ping任务,因为它们只是通过'gradle pingServer1 pingServer2 pingServer3'从命令行触发时才实现

问候,René