我正在尝试使用sbt程序集插件来编译我的scala代码。当我将它打包到snapshot.jar时,它运行良好。但是当我尝试添加程序集插件并将其编译为assembly.jar时,我遇到了问题。任何人都可以帮我吗?
tong@tong-VirtualBox:/usr/local/jars/hello/hello$ sbt package
[info] Set current project to hello (in build file:/usr/local/jars/hello/hello/)
[info] Packaging /usr/local/jars/hello/hello/target/scala-2.10/hello_2.10-0.1-SNAPSHOT.jar ...
[info] Done packaging.
[success] Total time: 1 s, completed Oct 23, 2015 10:02:52 AM
sbt-assembly
我得到了
tong@tong-VirtualBox:/usr/local/jars/hello/hello$ addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
bash: syntax error near unexpected token `"com.eed3si9n"'
答案 0 :(得分:1)
命令addSbtPlugin
不是unix命令,不能在 Linux shell中运行。一般来说,它是一个SBT命令(或任务,现在不确定),只能在SBT中使用。 (尝试一下,只需从shell / bash中运行sbt
即可进入SBT控制台。
因此,在您的情况中,addSbtPlugin ....
需要放在' .sbt'文件,首选位置是' plugin.sbt`,在您的项目中将插件添加到您的构建环境中。请您参考SBT tutorial pages on using plugins
一般
答案 1 :(得分:1)
在sbt-assembly项目页面上,有关如何安装/使用插件的相当简洁的解释。
为了让您快速上手,您只需将以下代码段添加到$PROJECT_ROOT/project/assembly.sbt
:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.0")
然后从shell开始组装阶段,如下所示:
$ cd $PROJECT_ROOT
$ sbt assembly
为了避免依赖性问题(如sbt-assembly项目页面中所述),使用sbt version> = 0.13.6会更好。您可以通过在$PROJECT_ROOT/build.properties
中添加以下内容来强制执行此操作:
sbt.version=0.13.8