我正在使用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所依赖的每一步。
答案 0 :(得分: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。