我有一个scala项目,我在IntelliJ内部运行良好,它的运行/调试配置设置为Application,现在我想创建一个jar来使用‘java.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)解压缩文件时,我会在根dir中看到合并的reference.conf。
我遗漏了什么?当我创建ActorSystem时,是否需要做一些特定的事情?我试着删除所有配置文件并运行所有默认设置,但它仍然没有工作,尽管在这种情况下,错误从抱怨"akka.version“变为抱怨"akka”。所以我觉得我只是没有加载akka的缺省值?
发布于 2015-01-14 03:04:04
我修正它是为了我的目的,但它并没有真正向我澄清问题是什么。我的修复(特定于IntelliJ的想法)是将工件更改为:
“提取到目标罐”
至
“复制到输出目录并通过清单链接”
我想当我制造一个大罐子时,会有什么东西丢失了。
--
我只是想添加一个更好的解决方案,用maven创建一个“胖罐子”。但我不能得到赞扬,因为它看起来像下面链接到Zoltan的Akka页面,提出了同样的解决方案,老实说,我不记得我是在哪里找到这个的。我可能在过去的某个时候接触过更新过的页面。请查阅该链接以获得更好的信息。
所以:
使用maven着色器插件创建fat jar,然后确保合并配置文件:
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>reference.conf</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>myMainClass</mainClass>
</transformer>使用这种配置,我可以成功地构建胖罐子。
https://stackoverflow.com/questions/27915512
复制相似问题