以编程方式从storm bolt终止拓扑时出现编译错误:对象和包同名

bejyjqdl  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(304)

我在寻找如何在Storm中从Storm中摧毁一个拓扑结构 1.2.1 在我的scala项目中。根据这个答案,我编写了以下代码:

private def shutTopology(){
    import org.apache.storm.utils.Utils
    import org.apache.storm.utils.NimbusClient
    val conf = Utils.readStormConfig
    val nimbusClient = 
NimbusClient.getConfiguredClient(conf).getClient
    nimbusClient.deactivate(topology_name)
  }

但它给出了以下错误: val conf = Utils.readStormConfig ,如何解决?
错误:(46,17)包守护进程包含同名的对象和包:nimbus
其中一个需要从类路径中删除
val conf=utils.readstormconfig文件
我通过两种方法编译得到上述错误 sbt 以及 mvn . 我在这里看到一些描述,但对如何解决这个问题没有太多帮助。

编辑:

根据这里的答案,我可以在 sbt 使用下列 scalac 选项:

"-Yresolve-term-conflict:object"

我仍然无法做到这一点如何解决这个错误时,编译与maven。

gmxoilav

gmxoilav1#

基于这里的答案,我可以使用以下scalac选项在sbt中编译:

"-Yresolve-term-conflict:object"

为了用maven编译这个文件,我在pom.xml中做了以下修改,如下所示:

<configuration>
      <scalaVersion>${scala.version}</scalaVersion>
      <args>
        <arg>-Yresolve-term-conflict:object</arg> //this was added
      </args>
      <jvmArgs>
        <jvmArg>-Xms2048m</jvmArg>
        <jvmArg>-Xmx4096m</jvmArg>
      </jvmArgs>
</configuration>

相关问题