Gradle println 在未调用时打印

2024-05-03

我的目标是每当idea任务已运行,但不幸的是,每当运行任何内容时都会打印该消息。为什么打印行在执行时执行idea任务没有运行?如何仅在以下情况下显示消息idea任务执行了?

构建.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 '*********************************************************'
}

命令的输出gradle hello

*********************************************************
* You should open build.gradle as a native project from *
* within IntelliJ.                                      *
*********************************************************
:hello
Hello world!

BUILD SUCCESSFUL

Total time: 2.846 secs

工作方案

tasks.getByPath('idea') << {
    println '*********************************************************'
    println '* You should open build.gradle as a native project from *'
    println '* within IntelliJ.                                      *'
    println '*********************************************************'
}

您需要将您的printlns 到一个动作中并将其添加到idea任务。以下示例显示了使用doFirst action:

ideaProject.doFirst {
    println '*********************************************************'
    println '* You should open build.gradle as a native project from *'
    println '* within IntelliJ.                                      *'
    println '*********************************************************'
}

您的代码在idea任务运行:它被评估为在配置阶段执行的配置代码Gradle 的构建生命周期 http://www.gradle.org/docs/current/userguide/build_lifecycle.html。在执行阶段仅执行操作。你的hello任务就是这样做的。

EDIT: idea is org.gradle.plugins.ide.idea.model.IdeaModel在这种情况下而不是任务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle println 在未调用时打印 的相关文章

随机推荐