有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Gradle构建结果

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

我是这样做的:

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

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


共 (1) 个答案

  1. # 1 楼答案

    没关系,以下几点会很好地发挥作用:

    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"
                }
        }
    })
    

    这也可以作为要点here提供