【问题标题】:Spring cloud data flow - Task - how to pass command line argumentSpring Cloud 数据流 - 任务 - 如何传递命令行参数
【发布时间】:2020-07-13 23:05:53
【问题描述】:

我很难让一个简单的任务在 Spring Cloud 数据流 (SCDF) 中成功运行。这就是我想做的简单事情。

    @Override
    public void run(String... args) throws Exception {
        System.out.println(
                "Passed argument : " + args[0]
        );
    }

我正在使用 docker-compose 安装方式进行本地测试。 SCDF 似乎通过 mariadb 作为驱动程序。我不确定在哪里覆盖这些默认值。

SCDF 允许在每次运行时传递参数。我可以通过以下参数来覆盖 mariadb 驱动程序。

但它选择该值作为命令行参数。我没有办法传递命令行参数!!

2020-04-02 03:08:32.557  INFO 115 --- [           main] c.v.cloudtask.CloudTaskApplication       : Started CloudTaskApplication in 2.719 seconds (JVM running for 3.267)
Passed argument : --spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
2020-04-02 03:08:32.595 DEBUG 115 --- [           main] o.s.c.t.r.support.SimpleTaskRepository  

问题: 1)我怎样才能强制ti使用mysql驱动程序..而不是使用mariadb? 2) 如何传递命令行参数?

【问题讨论】:

    标签: spring spring-cloud spring-cloud-dataflow


    【解决方案1】:

    如果您使用docker-compose 文件在本地运行SCDF 服务器,您可以使用here 中提到的docker-compose 自定义。

    如果您正在启动独立的 SCDF 服务器,您可以自定义数据源属性,如提到的 here

    你能澄清一下你的意思吗:

    但它选择该值作为命令行参数。我没有办法传递命令行参数!!

    您提到它选择值作为命令行参数?

    【讨论】:

    • 感谢您的回答。但它没有澄清。我已经完成了本地 docker-compose 定制。我担心的是 - 来自哪里的 spring boot 是传递的 mariadb 驱动程序名称。?我想删除它。如果我必须通过 --spring.datasour.... 来使用 MySQL,那么如何将参数传递给我的云任务。请在问题中查看我的云任务。
    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2018-01-24
    相关资源
    最近更新 更多