У меня странная проблема с sbt-assembly
, если кто-нибудь может помочь
При попытке создать толстую банку для развертывания в Spark с затенением, примененным к библиотекам shapeless
, я вижу, что некоторые классы не переименовываются при запуске на компьютере с Ubuntu, в то время как все переименовывается нормально, когда sbt assembly
запускается на Mac.
Вот конфиг затенения
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("shapeless.**" -> "shadedshapeless.@1")
.inLibrary("com.chuusai" % "shapeless_2.11" % "2.3.2")
.inLibrary("com.github.pureconfig" % "pureconfig_2.11" % "0.7.0")
.inProject)
При запуске на Mac эти классы переименовываются в шаблон shapeless/Generic*
.
Renamed shapeless/Generic$.class -> shadedshapeless/Generic$.class
Renamed shapeless/Generic.class -> shadedshapeless/Generic.class
Renamed shapeless/Generic1$.class -> shadedshapeless/Generic1$.class
Renamed shapeless/Generic1$class.class -> shadedshapeless/Generic1$class.class
Renamed shapeless/Generic1.class -> shadedshapeless/Generic1.class
Renamed shapeless/Generic10$class.class -> shadedshapeless/Generic10$class.class
Renamed shapeless/Generic10.class -> shadedshapeless/Generic10.class
Renamed shapeless/Generic1Macros$$anonfun$1.class -> shadedshapeless/Generic1Macros$$anonfun$1.class
Renamed shapeless/Generic1Macros$$anonfun$2.class -> shadedshapeless/Generic1Macros$$anonfun$2.class
Renamed shapeless/Generic1Macros.class -> shadedshapeless/Generic1Macros.class
Renamed shapeless/GenericMacros$$anonfun$23.class -> shadedshapeless/GenericMacros$$anonfun$23.class
Renamed shapeless/GenericMacros.class -> shadedshapeless/GenericMacros.class
но при запуске в Ubuntu для шаблона shapless/Generic*
переименовываются только эти вещи
Renamed shapeless/GenericMacros$$anonfun$23.class -> shadedshapeless/GenericMacros$$anonfun$23.class
Renamed shapeless/Generic1Macros$$anonfun$1.class -> shadedshapeless/Generic1Macros$$anonfun$1.class
Renamed shapeless/Generic1$.class -> shadedshapeless/Generic1$.class
Renamed shapeless/Generic1.class -> shadedshapeless/Generic1.class
Я выбрал шаблон shapeless/Generic*
, потому что, когда я предоставляю толстую банку (созданную в Ubuntu) spark-submit
, я сразу получаю сообщение об ошибке (вероятно, исходящее от pureconfig
)
Exception in thread "main" java.lang.NoClassDefFoundError: shadedshapeless/Generic
Ошибка не возникает, когда толстая банка, созданная на Mac, загружается в spark-submit