当前位置: 首页 > 面试题库 >

Gradle总是从任何任务执行println

柴坚诚
2023-03-14
问题内容

我很简单build.gradle(或任何build.gradle具有的任务println

println GradleVersion.current().prettyPrint()

task task1{
    println 'task1 starting'
}

现在,当我运行时,$ gradle build我总是看到任务正在执行或打印输出

task1 starting
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 1.291 secs

为什么println内部任务总是有输出?


问题答案:

如果您具有以下代码:

task task1 {
    println 'task1 starting'
}

您正处于任务的 配置 阶段。此阶段在脚本评估期间运行。如果要在执行任务时打印某些内容,则需要为任务添加 操作

看起来像:

task task1 << {
   println 'task1 action'
}

运行任务时将评估这段代码。<<doLast在Task的对象上调用方法完全相同。您可以添加许多操作。

编辑 我也强烈建议您阅读此博客文章。



 类似资料:
  • 我有代码: 年级4.5.1对此警告为 但是link没有给我任何可以替换它的提示,因为我不能仅仅设置任务依赖项,比如dependsOn或FinalizdBy--它不是从其他任务调用的,而是从构建的末尾调用的。

  • 我有一个文件,看起来像这样 wsimport任务从wsdl文件生成所需的一些java文件。生成需要一些时间,所以我不希望每次构建jar或编译程序时都执行它。 wsclean任务旨在当wsdl发生更改时使用。 首先,我运行wsimport任务并确认文件生成正确,它们就是! 但是现在,当我运行gradle jar时,生成的文件被删除了。为什么? 当我注释掉wsclean任务时,jar任务成功地继续。为

  • 我正在从事一个spring boot项目,以自动化与gradle的集成测试。我最近开始在一家新企业工作,我的同事们按如下方式运行集成测试:在构建中。gradle文件有一个集成测试任务 启动任务后,应用程序开始在指定端口运行,然后打开postman,导入集合并运行测试。 我的工作是找到一种方法来跳过额外的点击,即自动运行邮递员集合。第一个想法是使用postman-run gradle插件,但由于企业

  • 谁有办法修好它?只是随机的...此处为完整stacktrace:

  • 今天在Android Studio中,我重建了这个项目,我得到了这个错误。该项目在重建前很好。我没有更改代码中的任何内容。 这是一种错误吗?谢谢

  • 我想写一个Gradle任务,在我所有的子项目中共享。此任务在调用它的子项目中查找所有其他类型为“GenerateMavenPom”的任务,并执行这些任务。 通过这样做,我的子项目可以定义他们想要的任何Maven发布,我可以使用“gradle GenerateMavenPomFiles”等单个任务执行gradle来创建pom.xml,而不需要知道每个子项目中的单个发布类型。为什么?因为Maven插件