SBT程序集问题:找到String需要带有<< =语法的sbt.Task [String]

 xh7212176 发布于 2023-02-13 11:05

我是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中的新任务/设置语法有关:

首先,仍支持旧语法,目的是允许您在闲暇时转换为新语法.可能存在一些不兼容性,有些可能是不可避免的,但请报告您对现有版本的任何问题.

任何帮助感激不尽!

1 个回答
  • 它不是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"
    }
    

    2023-02-13 11:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有