我使用 gradle 应用程序插件的运行任务运行带有 args 的 java 主程序。该程序使用 picocli 解析命令行参数。当使用以下命令在我的开发环境中运行时,这可以正常工作:
./gradlew run --args="-ahttp://foo.com/bar -dmydeviceid"
当我 ssh 进入我的应用程序 docker 映像的 docker 容器时,它也运行良好。
但是,如果我在 Spinnaker 管道 Run Job 阶段使用相同的 docker 映像运行相同的 Gradle 运行任务,则它不起作用。日志语句显示参数被程序正确接收但没有被 picocli 处理。我猜这是因为 picocli 的代码生成器由于某种原因没有在 Spinnaker 管道的运行作业中运行。
任何建议如何解决这个问题。