我怎样才能让 Gradle ant logging 工作?

How can I get Gradle ant logging to work?

当我用 gradlew deployJelastic 运行它时,我没有得到任何输出。

task deployJelastic() {
    logging.level = LogLevel.INFO
    ant.taskdef(name: 'jelastic', classname: 'com.jelastic.Jelastic', classpath: configurations.jelastic.asPath)
    ant.jelastic(email: "foo",
            password: "bar",
            dir: "",
            filename: "baz-1.0.war",
            context: "",
            environment: "env",
            apihoster: "app.whelastic.net") {
    }
}

如果我使用 gradlew deployJelastic -i 运行任务,我会得到我正在寻找的所有 ant 输出。

我不想更改任何其他任务的日志记录输出,但出于某种原因,我无法使用此 gradle 推荐的方法。

来自 Gradle 的日志页面。 http://www.gradle.org/docs/current/userguide/logging.html

要在任务执行期间更改标准输出或错误的日志级别,任务还提供了一个 LoggingManager。

这就是我在此处访问和设置的内容。 logging.level = LogLevel.INFO

我正在使用此设置从命令行执行。

Build time:   2014-11-24 09:45:35 UTC
Build number: none
Revision:     6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a

Groovy:       2.3.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.7.0_71 (Oracle Corporation 24.71-b01)
OS:           Windows 7 6.1 amd64

我能够让它像这样工作。显然 {} 里面的东西是任务的配置。这就是你想要做的事情,在任务对象上调用 setter。 doLast 是一个闭包,它接受一组要执行的命令。因此,如果您使用这种形式,您定义一个任务,在顶部进行所有任务配置,然后在 doLast { } 闭包中编写任务应该执行的任何代码。

我觉得这非常令人困惑,但在经历了几十次任务定义迭代之后,我发现这个是最好的。顺便说一句,我不知道 doLast 如何与使用 << 运算符附加的其他任务操作交互,因此您的里程可能会有所不同。我不知道 doLast 是否只是在定义时附加到任务列表中的最后一个位置,或者它是否是一个保证最后一个的特殊位置。

task deployJelastic(name: 'deployJelastic', dependsOn: war) {
    logging.level = LogLevel.INFO
    def environmentSuffix = project.properties.enviromentSuffix ?: "test"
    doLast {
        ant.taskdef(name: 'jelastic', classname: 'com.jelastic.Jelastic', classpath: configurations.jelastic.asPath)
        ant.jelastic(email: "",
                password: "",
                dir: project.projectDir.absolutePath + "/build/libs/",
                filename: "ServeDirtyLibsInJava-${project.version}.war",
                context: "",
                environment: "foo-${environmentSuffix}",
                apihoster: "app.whelastic.net") //Got this from http://docs.jelastic.com/jelastic-hoster-info
    }
}