如何让Gradle ant日志工作?

时间:2015-01-09 01:21:59

标签: logging ant gradle

当我使用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运行任务,我会得到我正在寻找的所有蚂蚁输出。

我不想更改任何其他任务的日志记录输出,但出于某种原因,我无法使用这种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

1 个答案:

答案 0 :(得分:0)

我能够让它像这样工作。显然{}内的东西是任务的配置。这就是你想要在任务对象上调用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
    }
}