SBT程序集问题:找到所需字符串SBT.Task[String],语法为
我是sbt assembly的长期和愉快的用户,但在一个新项目上使用sbt 0.13.0和sbt assembly 0.10.1时遇到了一个问题 我以前使用过这样的代码:SBT程序集问题:找到所需字符串SBT.Task[String],语法为,sbt,sbt-assembly,Sbt,Sbt Assembly,我是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 <&
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中的:
首先,仍然支持旧语法,目的是允许您在空闲时转换为新语法。可能存在一些不兼容,有些是不可避免的,但请报告现有版本中存在的任何问题
感谢您的帮助 这不是sbt 0.13,而是sbt组件。我接受了一个pull req,该请求将jarName从设置更改为任务: 打破:jarName现在是一项任务 对于那些希望动态生成jar名称的人来说,这是个好消息。多亏了@dchenbecker,汇编中的jarName现在成了一项任务 使用sbt 0.13语法,您不必再担心任务/设置的差异:
jarName in assembly := {
name.value + "-" + version.value + ".jar"
}
非常感谢您的迅速回复,尤金!标记为接受答案。