【问题标题】:How do I use Gradle bootRun with --args in Intellij如何在 Intellij 中使用 Gradle bootRun 和 --args
【发布时间】:2019-02-15 11:03:22
【问题描述】:

Gradle 4.9 将--args 参数引入bootRun,我可以从命令行轻松使用,但如何在 Intellij 2018 的运行/调试配置中使用它?

在我的 Intellij 项目中将 Gradle 构建设置为运行 bootRun 任务,我在运行/调试配置屏幕中尝试了以下参数,但没有成功:

  • --args 'foo'
  • --args='foo'
  • --args=foo

Intellij 的输出:

9:18:56 AM: Executing task 'bootRun --args='foo''...

Unknown command-line option '--args'.
9:18:57 AM: Task execution finished 'bootRun --args='foo''.

A similar question documents the older syntax for doing this.

【问题讨论】:

  • 目前不可能。请关注 YouTrack 上的相关问题:youtrack.jetbrains.com/issue/IDEA-196952
  • 您找到解决方法了吗?
  • 不,我只是选择通过运行 Spring Boot Application 类而不是通过 Gradle 进行调试。

标签: gradle intellij-idea


【解决方案1】:

也许您可以在 IDEA 的 Run/Debug Configurations 中将您的参数添加到 TasksbootRun --args='foo'

我的任务是run --args='-h',它对我有用

【讨论】:

  • 这很有趣,但它确实有效(目前与 IDEA 2019.x 一起使用)。我没想到,但确实如此。不知道你是如何得到反对票的。 :-)
【解决方案2】:

很遗憾,@Linsama 的解决方法不适用于多个参数。例如,run --args='--arg1 --arg2' 将不起作用。

对于多个参数,您必须在“参数”字段中移动整个内容并将“任务”字段留空。

这将起作用:

任务:

参数:run --args='--arg1 --arg2'

【讨论】:

  • 惊人的解决方法,谢谢!有趣的是,无论哪种方式它都说"Executing task 'run --args=myargs'...
【解决方案3】:

作为一种解决方法,您可以使用 gradle 属性。

在 intellij Arguments 字段中添加 -Pargs=--myArg=value

然后在你的build.gradle 添加

bootRun {
    if (project.hasProperty('args')) {
        args project.args.split(',')
    }
}

现在应该可以在您的应用程序中使用 ApplicationArguments 访问它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2018-01-26
    • 2020-11-21
    • 2017-05-27
    • 2018-12-02
    • 2016-09-27
    相关资源
    最近更新 更多