0

我正在使用 Gradle 来构建我的软件。但是,我发现它产生的输出有点小。我不想使用--debug 或--info,因为该日志记录非常冗长。我只想知道 Gradle 构建的工件(zip、jar、dmg 等)的结果是什么。例如,当我运行“gradle jar”时,我想打印 jar 的创建位置。

我这样做是使用:

jar {
    doLast {
        println "Jar has been created in ${archivePath}"
    }
}

它很好地打印出 jar 已在 build/lib 目录中创建。但是,当我运行“gradle distZip”时,工件不是在 lib 目录中创建的,而是在分布目录中创建的。然而,上面的内容仍然被打印出来,但我宁愿不这样做:当我运行 distZip 时,我想知道在哪里可以找到该命令的输出,而不是 distZip 所依赖的每个步骤的输出。

4

1 回答 1

0

没关系,以下将很好地工作:

def artifacts = []

addListener(new TaskExecutionListener() {
    void afterExecute(Task task, TaskState state) {

            if(task in AbstractArchiveTask) {
                    artifacts << task.outputs.files.singleFile
            }
    }

    void beforeExecute(Task task) { }
})

addBuildListener(new BuildAdapter() {
    void buildFinished(BuildResult result) {
            if(artifacts) {
                    println "\nOutput location: ${artifacts.last()}\n"
            }
    }
})

这也可作为要点在这里

于 2013-07-15T09:25:24.917 回答