在使用sbt-assembly打包的时候遇到失败。报的错误信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Error:Error while importing SBT project:<br/>...<br/><pre> [info] Resolving org.codehaus.jackson#jackson-mapper-asl;1.9.11 ... [info] Resolving org.codehaus.jackson#jackson-core-asl;1.9.11 ... [info] Resolving org.jodd#jodd-core;3.6.3 ... [info] Resolving org.apache.spark#spark-streaming_2.11;1.4.1 ... [info] Resolving jline#jline;2.12.1 ... [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: UNRESOLVED DEPENDENCIES :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: com.eed3si9n#sbt-assembly;0.14.5: not found [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] [warn] Note: Unresolved dependencies path: [warn] com.eed3si9n:sbt-assembly:0.14.5 (D:\JDevelop\workspace\td-dmp\xxx-spark-dev\build.sbt#L11-24) [warn] +- com.zhyea.xxx:xxx-spark-dev_2.11:1.0 [trace] Stack trace suppressed: run last *:ssExtractDependencies for the full output. [trace] Stack trace suppressed: run last *:update for the full output. [error] (*:ssExtractDependencies) sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.14.5: not found [error] (*:update) sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.14.5: not found [error] Total time: 21 s, completed 2017-6-16 9:57:50 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; support was removed in 8.0</pre> <br/>See complete log in <a href="file:/C:/Users/robin/.IdeaIC2017.1/system/log/sbt.last.log">file:/C:/Users/robin/.IdeaIC2017.1/system/log/sbt.last.log</a> |
疑惑了好久。
后来在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插件的语句如下:
1 |
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5") |
这个问题纯粹是因为阅读文档不仔细导致的。官网上说的很清楚。以后需要注意。
########
发表评论