gpt4 book ai didi

Gradle println在未调用时进行打印

转载 作者:行者123 更新时间:2023-12-03 19:10:56 25 4
gpt4 key购买 nike

我的目标是在运行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 '*********************************************************'
}

命令 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 '*********************************************************'
}

最佳答案

您将需要将println放入一个 Action 中,并将其添加到idea任务中。以下示例显示了doFirst操作的用法:

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

您的代码在运行 idea任务之前已执行的特定原因是:它被评估为在 Gradle's build lifecycle的配置阶段中执行的配置代码。在执行阶段仅执行 Action 。您的 hello任务可以做到这一点。

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

关于Gradle println在未调用时进行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com