我是sbt-assembly的长期和快乐的用户,但是在新项目中使用SBT 0.13.0和sbt-assembly 0.10.1时遇到了问题.
我之前使用过这样的代码:
import sbtassembly.Plugin._ import AssemblyKeys._ lazy val sbtAssemblySettings = assemblySettings ++ Seq( // Slightly cleaner jar name jarName in assembly <<= (name, version) { (name, version) => name + "-" + version + ".jar" } ) lazy val buildSettings = ... ++ sbtAssemblySettings
在以前版本的SBT/sbt-assembly中,这对我来说很好,但我现在收到错误:
type mismatch; [error] found : String [error] required: sbt.Task[String] [error] jarName in assembly <<= (name, version) { (name, version) => name + "-" + version + ".jar" } [error] ^ [error] one error found
为了完整性:完整项目可在此处获得.
我不禁想知道这个问题是否与SBT 0.13.0中的新任务/设置语法有关:
首先,仍支持旧语法,目的是允许您在闲暇时转换为新语法.可能存在一些不兼容性,有些可能是不可避免的,但请报告您对现有版本的任何问题.
任何帮助感激不尽!
它不是0.13,它是sbt-assembly.我接受了一个pull req,它将jarName
设置从任务更改为0.8.8:
打破:jarName现在是一个任务
对于那些想要动态生成jar名称的人来说是个好消息.感谢@dchenbecker,汇编中的jarName现在是一个任务#74.
使用sbt 0.13语法,您不必再担心任务/设置差异:
jarName in assembly := { name.value + "-" + version.value + ".jar" }