【发布时间】:2015-03-11 00:25:19
【问题描述】:
我有一个 scala 项目,我在 IntelliJ 中运行良好,运行/调试配置设置为应用程序,现在我想创建一个 jar 来使用“java -jar .jar”运行它。这是一个 Maven 项目,而不是 SBT。
我有三个模块,包含所有其他模块的顶层模块在资源文件夹中有一个 reference.conf。这是一个最小的 application.conf,没有很多设置。另一个模块有自己的reference.conf。
我基于我的顶级模块创建了一个工件,并构建它以创建一个 jar。当我用 java 执行它时
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.se.pd.Main.main(Main.scala)
Caused by: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.version'
at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:145)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:151)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206)
at akka.actor.ActorSystem$Settings.<init>(ActorSystem.scala:168)
at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:504)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:141)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:118)
at com.se.pd.ServiceMain$class.$init$(ServiceMain.scala:25)
at com.se.pd.Main$.<init>(Main.scala:17)
at com.se.pd.Main$.<clinit>(Main.scala)
当我解压缩文件时,我在根目录中看到了合并的 reference.conf。
我错过了什么?当我创建我的 ActorSystem 时,我需要做一些特定的事情吗?我尝试删除所有配置文件并使用所有默认值运行,但它仍然无法正常工作,尽管在这种情况下,错误从抱怨“akka.version”变为抱怨“akka”。所以感觉好像我只是没有加载 akka 默认值?
【问题讨论】:
-
你合并的
reference.conf里面有akka.version吗?你也可以看看这个——github.com/shivawu/sbt-maven-plugin -
这里是完整的
reference.conf演员:http://doc.akka.io/docs/akka/2.3.8/general/configuration.html#akka-actor -
@Soumya 不,它没有 akka.version,我合并的 reference.conf 仅包含我的模块中 reference.conf 中的属性。