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

时间:2011-12-12 17:52:52

标签: gradle

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

apply plugin: 'java'

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

即使没有使用gradle gradle tasks --all

uploadArchives任务列在gradle java插件文档中 见http://www.gradle.org/java_plugin(表11)。

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

我可以无错误地调用gradle uploadArchives,但未列出任务。

2 个答案:

答案 0 :(得分:9)

uploadArchives任务作为规则添加到构建脚本中,而不是按名称显式添加。在“gradle tasks”的输出中,你应该看到这一行:

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

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

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

E.g。

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

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

的问候, 勒

答案 1 :(得分:1)

uploadArchives任务是maven-plugin的一部分。你必须添加:

apply plugin: 'maven'
相关问题