【问题标题】:Unable to use Apache Commons CLI Option.builder() in Scala无法在 Scala 中使用 Apache Commons CLI Option.builder()
【发布时间】:2017-11-15 23:48:51
【问题描述】:

在 spark shell 或应用程序(用 Scala/maven 构建编写)中,我无法使用 Apache Commons CLI 包中的静态构建器方法。我已经确认我将 jar 包含在类路径中,并且可以访问 Option 类以及包中的其他类,如 OptionsDefaultParser 等。为什么我不能在斯卡拉?

import org.apache.commons.cli.Option

val opt = Option.builder("foo").build()

错误:值生成器不是对象 org.apache.commons.cli.Option 的成员

但是我可以看到静态字段 Option.UNINITIALIZEDOption.UNLIMITED_VALUES

使用commons-cli 1.3.1

Scala 版本: 2.11.8

Spark 版本: 2.2.0

启动 shell 的命令: spark-shell --jars .m2/repository/commons-cli/commons-cli/1.3.1/commons-cli-1.3.1.jar

【问题讨论】:

标签: scala maven command-line-interface


【解决方案1】:

让我帮你澄清你的问题场景。

你可以打开你的.idea文件夹,发现里面已经有一些内部jar依赖,而且commons_cli列表中存在,但是1.2版本

这会导致类冲突。

解决方法很简单,参考doc,使用兼容的构造方法。

【讨论】:

  • 感谢您的回答,但事实并非如此。与 1.2 没有冲突,我确实在使用 1.3
猜你喜欢
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多