Мне нужно создать плагин Nutch, который взаимодействует с некоторыми внешними приложениями с помощью Akka. Для этого мне нужно упаковать плагин как толстый Jar — я использую sbt-assembly< /а> версия 0.8.3.
Когда я пытаюсь запустить плагин, я получаю исключение
com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka'
как будто Акка не смогла найти reference.conf
. Это странно, потому что sbt-assembly
должна быть возможность правильно упаковать этот файл, и на самом деле я могу видеть его содержимое в созданном банке.
Мой build.sbt
выглядит так:
import AssemblyKeys._
name := "my-project"
version := "0.1-SNAPSHOT"
scalaVersion := "2.10.0"
resolvers ++= Seq(
"Central Repo" at "http://repo1.maven.org/maven2",
"Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/",
"Akka io" at "http://akka.io/repository"
)
libraryDependencies ++= Seq(
...,
"com.typesafe.akka" %% "akka-actor" % "2.1.1",
"com.typesafe.akka" %% "akka-remote" % "2.1.1"
)
seq(assemblySettings: _*)
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case "plugin.xml" =>
MergeStrategy.first
case x if x startsWith "org/apache/jasper" =>
MergeStrategy.last
case x if x startsWith "javax/xml" =>
MergeStrategy.last
case x if x startsWith "javax/servlet" =>
MergeStrategy.last
case x if x startsWith "org/apache/commons" =>
MergeStrategy.last
case x if x startsWith "org/apache/xmlcommons" =>
MergeStrategy.last
case x if x startsWith "org/xml/sax" =>
MergeStrategy.last
case x if x startsWith "org/w3c/dom" =>
MergeStrategy.last
case x => old(x)
}
}
Последние строки нужны для исправления некоторых конфликтов между nutch и hadoop.
Как правильно упаковать приложение Akka?
When using JarJar, OneJar, Assembly or any jar-bundler
. Я не уверен, что это поможет вашему делу - person EECOLOR   schedule 04.03.2013Let it crash!
, где обсуждается этот вопрос. Теоретически дефолтная конфигурация файловsbt-assembly' should merge the
reference.conf` - по факту я вижу результат слияния в jar. Но похоже, какую бы стратегию слияния я ни использовал, ключakka
отсутствует, то есть файл reference.conf вообще не читается. - person Andrea   schedule 04.03.2013reference.conf
, которое находится в банкеakka-actor
? - person EECOLOR   schedule 04.03.2013reference.conf
вakka-actor
иakka-remote
. - person Andrea   schedule 04.03.2013akka.version
отсутствует; в вашем случае это толькоakka
) - person Roland Kuhn   schedule 06.03.2013