问题标签 [gradle-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3321 浏览

unit-testing - 如何对gradle任务进行单元测试?

我想测试我的 build.gradle 脚本的逻辑。
脚本的摘录将是:

我想测试方法和任务本身。
“prepareProject”任务的执行时间相当长,但在“真实”设置中,不仅需要设置上述任务所需的属性,而且还需要设置属性。
对于测试,我只想设置运行 readFiles 任务并验证结果,确保项目上的任一属性设置正确或引发异常。

我已经研究过 gradle 测试套件,但这不是我需要的,因为我找不到任何可以让我检查项目的东西。
我已经看过Guide for Testing Gradle Scripts,但是这篇文章已经很老了,并没有解决我的需求/问题。我也看过 gradle docs Testing Build Logic with TestKit,但看起来 GradleRunner 似乎并没有提供任何真正的检查或项目准备能力。
另外,它会让我们使用 jUnit,有效地添加整个类结构,仅用于测试目的。不干净且难以维护。谷歌搜索 gradle + test + task 和其他变体可以找到大量运行 xUnit 测试的方法,但这不是我在这里需要的。

总结一下,我需要的是:

  • 单独测试来自 build.gradle 的 gradle 任务和方法(测试工具包将运行任务及其所有依赖项,我不想要这个)
  • 在测试运行之前准备项目(测试套件似乎不允许这样做)
  • 验证任务/方法输出

有没有人成功做到这一点?
还是我以错误的方式处理这个问题?
我对 gradle 还很陌生,正在寻找好的选项来测试我的构建脚本。

0 投票
1 回答
3310 浏览

gradle - 在子项目中运行 gradle 任务

我有一个像这样的多项目构建

设置.gradle

现在在examples项目build.gradle中,我已经为所有子项目声明了一个任务,如下所示:

当我运行时gradle tasks --all,我得到类似于以下的输出(以及其他):

现在我尝试simple-project像这样运行该任务

我得到的输出是:

FAILURE:构建失败并出现异常。

  • 出了什么问题:在项目“:示例:简单项目”中找不到任务“你好”。一些候选人是:“帮助”。

  • 尝试:运行 gradle 任务以获取可用任务列表。使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 在https://help.gradle.org获得更多帮助

0 秒内构建失败

我究竟做错了什么?在子项目中运行任务的正确方法是什么?


编辑

如果我改为运行它

然后这也运行子项目任务(hello

> 任务 :examples:simple-aspect-project:hello

简单方面项目:我是一个例子

我不想要这个。我希望能够为我想要的子项目运行任务,而不是一次全部运行。

0 投票
1 回答
691 浏览

gradle - Gradle Copy 任务始终是最新的

我已经多次看到这个问题,但我还没有找到与我的特定用例相匹配的答案。

在迭代包含环境属性的配置文件之后,我从模板创建了一堆配置文件。

问题是,如果我用一些新值修改 src/properties/ENV.gradle,当我基于它已经是“UP-TO-DATE”来调用任务时,它会被忽略。我没有使用 doFirst 或 doLast,这是发生这种情况的常见原因之一。

到目前为止,我的解决方法是包括

无论 Gradle 计算什么,它都会强制每次重新创建配置文件,但感觉就像一个可怕的 hack。有没有更好的办法?

这是代码:

解决方案: 我的情况有点具体,因为我希望复制任务注意到“配置”的变化,而没有告诉它明确关心它(见下面接受的答案)。这是解决问题的更改:

第一个参数(用引号引起来)是该属性的名称,第二个是实际值。

现在,当我更改 ENV.gradle 文件中的属性并运行“gradle -i”时,我看到:

0 投票
1 回答
32466 浏览

gradle - Gradle 中测试和检查任务的区别

build.gradle的如下:

在 Gradle 中./gradlew tasks我收到

这两个任务有什么区别?的输出与./gradlew check相同./gradlew test

据我了解,./gradle test./gradle check。这个对吗?

0 投票
2 回答
4317 浏览

eclipse - Gradle 任务在 Eclipse 中被禁用

我正在尝试为我的 Eclipse 项目创建一个.jar文件。通过导出选项,我可以创建.jar,但我想使用Gradle 构建任务来这样做。问题是,仅针对该特定项目禁用所有任务,如下图所示...

Gradle 任务

对于另一个项目,这些Gradle 任务运行良好。查看它的 build.gradle 文件...

它的 settings.gradle 文件包含一行是...

有人可以建议我在这里缺少什么吗?

0 投票
1 回答
119 浏览

spring-boot - 为什么我需要在构建之前手动运行 clean?

这是我的配置

应用程序.yml

构建.gradle

如果我运行这一切正常

但是如果我运行它,“env”道具会保留在第一个配置中

奇怪的是,如果我clean { println "CLEAN" }看到每次都使用所有 4 个命令调用 clean

0 投票
1 回答
3973 浏览

gradle - 在多项目构建中依赖多个 gradle 任务

目前我有启动谷歌云服务器、运行测试和停止服务器的任务。它在根项目中定义:

我尝试了多种方法来编写这样的东西,只有一个任务。我没有得到如何从另一个项目中引用任务并在其上调用 mustRunAfter 。这不起作用(我也尝试从 Project.tasks.getByPath、root.tasks 等中引用):

可能吗?什么是使这项工作的正确语法?

0 投票
1 回答
442 浏览

maven-plugin - 如何将“纱线运行脚本构建”任务从前端 maven 插件迁移到 gradle?

我使用 gradle-node-plugin 而不是 frontend-maven-plugin。
maven中的“yarn run-script build”任务编写如下

在 gradle 中,我写了 yarnScriptBuild 任务

如果我执行“./gradlew yarnScriptBuild”命令,
我会收到错误“输出路径不能是项目根目录!”
然后我插入outputs.dir = ("$buildDir/classes")到 yarnScriptBuild,但它没有用。
(几天前我发现页面“$buildDir 表示 {root directory}/build”)
我收到另一个错误“No such property: dir for class: org.gradle.api.internal.tasks.DefaultTaskOutputs”

这是否意味着“dir”属性不存在?
我应该怎么做?什么不见​​了?

如果信息不足,请告诉我。
谢谢你。

0 投票
1 回答
26 浏览

gradle - Gradle:使用任务的成员作为其他任务的输入

setVersionTask 设置一个我想被 getVersionTask 用作输入的成员。这是我的代码:

我去的时候

./gradlew -q 获取版本

我明白了

发现任务 ':getVersionTask' 的配置有问题。没有为属性“版本”指定值。

我该如何做到这一点?

非常感谢!

0 投票
2 回答
2514 浏览

http - Gradle HTTP 插件

我需要在 gradle build 中使用 HTTP post 上传文件。我找到了可以达成交易的HTTPPlugin。我做了一个简单的构建,但它给了我错误:

构建.gradle

似乎 gradle 找不到 HTTPTask。知道我错过了什么吗?