有没有办法可以使用SBT包来包含一些外部JAR,但不是全部。我知道SBT程序集,但这将包括在Build.sbt中配置的所有JAR
rsaldnfx1#
在这种情况下,您必须提供不带“Provided”选项的依赖项,并添加“Provided”以排除Build.sbt文件中的包的依赖项。例如:我在这里为Spark流依赖提供了“提供”,这将不会包括在我的FAT JAR中:
"org.apache.spark" %% "spark-streaming" % sparkVersion % "provided"
但是pureconfig依赖包将包含在我的FAT JAR中,因为我还没有提到关键字:
"com.github.pureconfig" %% "pureconfig" % "0.12.3"
aelbi1ox2#
您可以在程序集插件中使用assemblyExcludedJar设置。SBT-ASSEMBLY自述文件中有一个示例:
assemblyExcludedJar
assemblyExcludedJars in assembly := { val cp = (fullClasspath in assembly).value cp filter {_.data.getName == "compile-0.1.0.jar"} }
umuewwlo3#
编译+=文件(“lib/my.jar”)中的未管理Jars
3条答案
按热度按时间rsaldnfx1#
在这种情况下,您必须提供不带“Provided”选项的依赖项,并添加“Provided”以排除Build.sbt文件中的包的依赖项。
例如:我在这里为Spark流依赖提供了“提供”,这将不会包括在我的FAT JAR中:
但是pureconfig依赖包将包含在我的FAT JAR中,因为我还没有提到关键字:
aelbi1ox2#
您可以在程序集插件中使用
assemblyExcludedJar
设置。SBT-ASSEMBLY自述文件中有一个示例:umuewwlo3#
编译+=文件(“lib/my.jar”)中的未管理Jars