使用sbt-assembly提示unresolved dependency

在使用sbt-assembly打包的时候遇到失败。报的错误信息如下:

疑惑了好久。

后来在StackOverflow找到了说明。这个问题是scalaVersion导致的。sbt在build应用的时候会使用scalaVersion这个配置项指定的scala版本执行构建。然而sbt0.13自己是用scala2.10构建的,同样sbt.13的插件也是用scala2.10构建的。如果应用的scalaVersion不是2.10,使用sbt的插件的时候就有可能报上面的这个错。可以简单将build.sbt中的scalaVersion删除,然后再使用sbt assembly就能看到问题解决了。

不过这样并不是最好的解决方案。这个问题的根源是因为我添加sbt-assembly插件的时候是将assembly.sbt放在了根目录下。如果将assembly.sbt这个文件放在应用的project目录下就可以避免这个错误。或者将添加sbt-assemble插件的语句放到./project/plugins.sbt中也是可以的。引用sbt-assemble插件的语句如下:

这个问题纯粹是因为阅读文档不仔细导致的。官网上说的很清楚。以后需要注意。

########

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据