Gradle println在未调用时打印
我的目标是在运行Gradle println在未调用时打印,gradle,Gradle,我的目标是在运行idea任务时将消息打印到控制台,但不幸的是,每当运行任何东西时都会打印消息。当idea任务未运行时,为什么要执行打印行?如何仅在执行idea任务时显示消息 格雷德尔先生 apply plugin: 'idea' task hello << { println 'Hello world!' } tasks.idea() { println '******************************************************
idea
任务时将消息打印到控制台,但不幸的是,每当运行任何东西时都会打印消息。当idea
任务未运行时,为什么要执行打印行?如何仅在执行idea
任务时显示消息
格雷德尔先生
apply plugin: 'idea'
task hello << {
println 'Hello world!'
}
tasks.idea() {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
工作解决方案
tasks.getByPath('idea') << {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
tasks.getByPath('idea')您需要将您的println
s放入一个操作中,并将其添加到idea
任务中。以下示例显示了doFirst
操作的使用:
ideaProject.doFirst {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
在运行idea
任务之前执行代码有一个特定的原因:它被评估为在的配置阶段执行的配置代码。在执行阶段仅执行操作。您的hello
任务就是这样做的
编辑:idea
是org.gradle.plugins.ide.idea.model.IdeaModel
在这个上下文中,而不是在任务中。如果您想强制gradle打印一些消息,但只是在执行阶段,请将println
命令移动到doFirst
或doLast
。战争任务示例:
war {
doFirst {
println "Packing module/project to " + archiveName + " ..."
}
manifest {
// attributes ...
}
// other commands ...
doLast {
println "Packing done. See target directory."
}
}
另请参阅:@PaulVerest感谢您的链接
war {
doFirst {
println "Packing module/project to " + archiveName + " ..."
}
manifest {
// attributes ...
}
// other commands ...
doLast {
println "Packing done. See target directory."
}
}