首页 文章

Gradle构建结果

提问于
浏览
0

我正在使用Gradle构建我的软件 . 但是,我发现它的输出程序有点微不足道 . 我不想使用--debug或--info,因为日志记录非常详细 . 我只是想知道Gradle buid的工件(zip,jar,dmg等)的结果是什么 . 例如,当我运行'gradle jar'时,我想打印创建jar的位置 .

我这样做使用:

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

并且很好地打印出jar已经在build / lib目录中创建 . 但是,当我运行'gradle distZip'时,工件不是在lib目录中创建的,而是在发行目录中创建的 . 然而上面的内容仍然打印出来,但我宁愿不这样做:当我运行distZip时,我想知道在哪里可以找到该命令的输出,而不是distZip所依赖的每一步 .

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

    这也可作为要点here .

相关问题