1

我想使用 Gradle Tooling API 通过 Buildship 插件从 Eclipse 插件调用 Gradle。我能够毫无问题地运行基本任务。

我的一个用例是gradle init在新项目文件夹中执行任务,但要以非交互方式工作,我必须在任务上传递--type命令行参数(或设置type属性)init。我在工具 API 中找不到任何方法来设置任务的属性或传递特定于任务的命令行参数。

我试过BuildLauncher.addArgument("--type", "plain")了,但这被解释为 Gradle 本身的一个参数,这是无效的。

如何将--type plain参数传递给init任务?

4

1 回答 1

0

阅读此处的文档后,我发现您可以通过 Gradle 命令行构建参数设置任务参数。文档中的重要一点是:

此外,如果您碰巧通过构建参数指定其他任务,则可以覆盖由 BuildLauncher.forTasks(String...) 配置的任务名称。

就我而言,我想gradle tasks --all通过工具 api 运行。为了让它工作,我没有指定要运行的任务forTasks(),我只是不调用那个方法。我将任务设置为通过. withArguments()(在这种情况下,参数将是tasks --all)。

我认为这对init任务应该是一样的。

于 2020-06-16T11:46:24.150 回答