Mám projekt scala, ktorý som spustiljemne vnútri IntelliJ s konfiguráciou Run / Debug nastavenou na aplikáciu a teraz by som rád vytvoril jar na spustenie pomocou java -jar .jar. Toto je projekt maven, nie SBT.
Mám tri moduly a vrcholový modul, ktorýobsahuje všetky ostatné moduly má referenčné.conf vo zložke zdrojov. Je to minimálna aplikácia.conf, nie veľa nastavení, ale jeden z modulov má vlastný referenčný súbor.conf.
Vytvoril som artefakt založený na mojom najvyššom module a postavil som ho na vytvorenie pohára. Keď to vykonám s javou
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)
Keď rozbalím súbor, vidím zlúčený referenčný súbor.conf v koreňovom adresári.
Čo mi chýba? Potrebujem urobiť niečo konkrétne, keď vytvorím svoj ActorSystem? Snažil som sa vymazať všetky moje konfiguračné súbory a spustiť so všetkými predvolenými nastaveniami a stále to nefunguje, aj keď v takom prípade sa chyba zmenila zo sťažovania na "akka.version" na sťažovanie na "akku". "Nemám načítať predvolené akky?
odpovede:
3 pre odpoveď č. 1Opravil som to na moje účely, ale naozaj mi to neopisuje, čo to je. Moja oprava (špecifická pre IntelliJ IDEA) mala zmeniť artefakt z:
"výpis na cieľ JAR"
na
"kopírovať do výstupného adresára a prepojiť prostredníctvom manifestu"
Predpokladám, že sa niečo stane, keď vytvorím veľkú tuk.
--
Chcel som len pridať lepšie riešenie na vytvorenie "tukovej nádoby" s mavenom. ale Nemôžem vziať úver, pretože vyzerá ako stránka Akka, ktorá je nižšie uvedenáZoltan teraz navrhuje rovnaké riešenie a vo všetkej úprimnosti si nemôžem spomenúť na to, kde som to našiel. Možno som sa dostal do aktualizovanej stránky už v minulosti. Prečítajte si tento odkaz na oveľa lepšie informácie.
takže:
Použite zásuvný modul Shader Maven na vytvorenie tukovej nádoby Potom sa uistite, že ste zlúčili konfiguračné súbory:
<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>
Pomocou tejto konfigurácie môžem úspešne vybudovať tukové poháre.