Kar*_*lis 12 scala sbt sbt-assembly
我在scala中编码并使用SBT和sbt-assembly插件.我的项目有很多外部库,因此sbt-assembly需要很长时间来打包JAR文件.我想为我的代码和依赖项提供单独的jar文件.因此,我可以简单地重新编译并重新打包我的代码.这该怎么做?
迄今取得的进展:
以下命令build.sbt阻止sbt-assembly打包库:
assembleArtifact in packageScala := false
assembleArtifact in packageDependency := false
然后分离罐可以通过将下面的命令来构建:assembly,assembly-package-scala和assembly-package-dependency.他们制作了三个罐子:一个包含我的程序,一个包含scala库,另一个包含所有依赖项.
但是,jar文件不再可执行,因为它在单独的jar文件中看不到依赖项.我想我需要为assembly-sbt添加一个类路径,但我不知道该怎么做.请帮助(详细评论表示赞赏,因为我是SBT的新手).谢谢!
请参阅设置类路径仍然无法找到外部Jar.甲骨文说:
使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置.
所以,你必须说:
java -cp "foo-assembly-0.1-deps.jar:foo-assembly-0.1.jar" Main
Run Code Online (Sandbox Code Playgroud)
其中Main是主类的名称,:是操作系统;上的文件分隔符(在Windows上).
目前似乎有一个错误assembly-package-scala,它出来是空的,但它应该没关系,因为assembly-package-dependency包含Scala库也是如此.