簡體   English   中英

Akka:缺少akka.version

[英]Akka: missing akka.version

我有一個scala項目,我在IntelliJ中運行良好,運行/調試配置設置為Application,現在我想創建一個jar來使用'java -jar .jar'來運行它。 這是一個maven項目,而不是SBT。

我有三個模塊,包含所有其他模塊的頂層模塊在resources文件夾中有一個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默認值?

我為了我的目的修好了它,但它並沒有真正向我澄清問題是什么。 我的修復(IntelliJ IDEA特定)是從以下更改工件:

“提取到目標JAR”

“復制到輸出目錄並通過清單鏈接”

我想當我制作一個大胖罐時會丟失一些東西。

-

我只想添加一個更好的解決方案來創建一個帶有maven的“胖罐子”。 但是我不能相信 ,因為看起來Zoltan下面鏈接的Akka頁面現在提出了相同的解決方案,並且說實話,我不記得我在哪里發現了這個。 我可能在過去的某個時候遇到過更新的頁面。 請查閱該鏈接以獲取更好的信息。

所以:

使用maven着色器插件創建胖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>

使用該配置,我可以成功構建胖罐。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM