我的目标是在idea任务运行时向控制台打印一条消息,但不幸的是,只要运行任何内容,就会打印消息.为什么在idea没有运行任务时执行打印行?如何仅在idea执行任务时显示消息?
的build.gradle
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 '*********************************************************'
}
Run Code Online (Sandbox Code Playgroud)
输出命令 gradle hello
*********************************************************
* You should open build.gradle as a native project from *
* within IntelliJ. *
*********************************************************
:hello
Hello world!
BUILD SUCCESSFUL
Total time: 2.846 secs
Run Code Online (Sandbox Code Playgroud)
工作方案
tasks.getByPath('idea') << {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
Run Code Online (Sandbox Code Playgroud)
您将需要将printlns放入一个动作中并将其添加到idea任务中。以下示例显示了该doFirst操作的用法:
ideaProject.doFirst {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
Run Code Online (Sandbox Code Playgroud)
您的代码在idea运行任务之前已执行是有特定原因的:它被评估为在Gradle构建生命周期的配置阶段执行的配置代码。在执行阶段仅执行动作。你的hello任务可以做到这一点。
编辑:idea是org.gradle.plugins.ide.idea.model.IdeaModel在这种背景下,而不是任务。
| 归档时间: |
|
| 查看次数: |
8390 次 |
| 最近记录: |