Scala Can';不要在IDEA插件开发中使用akka
当我开发IDEA插件时,我想使用Scala Can';不要在IDEA插件开发中使用akka,scala,plugins,intellij-idea,akka,Scala,Plugins,Intellij Idea,Akka,当我开发IDEA插件时,我想使用akka,但有一些问题 我在这里创建了一个演示项目: 你可以克隆它,然后在你的计算机上重现这个问题。(请注意设置部分) 我把问题复制到这里: 问题 1.无法使用默认akka配置 如果我删除: src/main/resources/application.conf src/main/scala/freewind/MyAkkaConfig 并运行此插件,它将在启动时报告此错误: com.intellij.ide.plugins.PluginManager$Star
akka
,但有一些问题
我在这里创建了一个演示项目:
你可以克隆它,然后在你的计算机上重现这个问题。(请注意设置部分)
我把问题复制到这里:
问题
1.无法使用默认akka配置
如果我删除:
src/main/resources/application.conf
src/main/scala/freewind/MyAkkaConfig
com.intellij.ide.plugins.PluginManager$StartupAbortedException:
com.intellij.diagnostic.PluginException: No configuration setting found for key 'akka'
[Plugin: com.yourcompany.unique.plugin.id]
2.无法从文件加载配置
然后我将reference.conf
从akka jar复制到src/main/resources/application.conf
,但它仍然报告相同的错误。IDEA插件中的akka似乎无法自动找到此文件
3.ClassNotFoundException:akka.actor.LightArrayRevolversScheduler
因此,我必须使用MyAkkaConfig.scala
对scala代码中的配置进行硬编码,但这一次,它报告了另一个错误:
com.intellij.ide.plugins.PluginManager$StartupAbortedException:
com.intellij.diagnostic.PluginException: ClassNotFoundException: akka.actor.LightArrayRevolverScheduler
[Plugin: com.yourcompany.unique.plugin.id]
akka.actor.lightArrayRevolversScheduler
用于MyAkkaConfig.scala
,并包含在akka-actor_2.11:2.3.12:jar
中。但是为什么IDEA不能加载它呢?对于第三个问题,可以通过传递类加载器来解决:
val system = ActorSystem("my-actor", MyAkkaConfig.config, this.getClass.getClassLoader)
但是我们也可以删除
MyAkkaConfig.config
,使用resources
下的文件application.conf
,听起来像是类路径问题。检查运行配置
并查看类路径的外观。您可以手动将配置文件所在的目录添加到类路径。对于像我这样面临相同问题的人来说,这也解决了其他两个问题,