Ака: липсва akka.version - scala, akka

Имам проект за скала, който бях изпълнявалдобре вътре в IntelliJ с Run / Debug конфигурация, зададена на Application, а сега бих искал да създам буркан, за да го изпълня с помощта на "java -jar .jar".

Имам три модула и горния модул, койтовключва всички останали модули има reference.conf в папката ресурси. Това е минимален application.conf, не много настройки. Друг един от модулите има своя собствена reference.conf.

Създадох артефакт на базата на най-горния ми модул и го изградих, за да създам буркан. Когато го изпълня с 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 в root директорията.

Какво липсва? Трябва ли да направя нещо специфично, когато създавам своята ActorSystem? Опитах се да изтрия всички мои конфигурационни файлове и да стартирам с всички настройки по подразбиране и все още не работи, въпреки че в този случай грешката се променя от оплакване за "akka.version", за да се оплаква от "akka". "просто не зареждам настройките по подразбиране?"

Отговори:

3 за отговор № 1

Поправих го за моите цели, но всъщност не ми изясни какъв е проблемът. Моето поправка (специфично за IntelliJ IDEA) беше да променя артефакта от:

"извличане към JAR"

да се

"копиране в изходяща директория и връзка чрез манифест"

Предполагам, че нещо се губи, когато създам голям дебел буркан.

--

Просто исках да добавя по-добро решение, за да създам "дебел буркан" с maven. Но Не мога да взема кредит, тъй като изглежда като страницата Akka, свързана по-долуот Золтан сега предлага същото решение и честно казано не мога да си спомня къде съм намерил това. Може да съм се срещал в актуализираната страница в някакъв момент в миналото. Моля, консултирайте се с тази връзка за много по-добра информация.

Така:

Използвайте плъгина за шейдъри на maven, за да създадете дебелия буркан След това се уверете, че сте обединили конфигурационните файлове:

<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>

Използвайки тази конфигурация, мога успешно да изградя дебели буркани.