【问题标题】:sbt deprecation warning <<= replaced with := results in no main class foundsbt deprecation warning <<= 替换为 := 导致找不到主类
【发布时间】:2017-08-27 15:45:33
【问题描述】:

使用 sbt 0.13.13 时。我可以观察到,当使用:= 时,没有找到主类(但没有显示弃用警告),而对于&lt;&lt;=,我收到了警告,但找到了主类。这里有什么问题?

run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in(Compile, run), runner in(Compile, run))
run in Compile <<= Defaults.runTask(fullClasspath in Compile, mainClass in(Compile, run), runner in(Compile, run))

【问题讨论】:

  • :=&lt;&lt;= 有不同的类型。您需要更改主体,但我不确定需要进行哪些更改。

标签: scala sbt deprecation-warning mainclass


【解决方案1】:

runInputTask[Unit]runTask 的类型是Def.Initialize[InputTask[Unit]]:= 的右侧需要是Unit

您所做的可以编译,因为可以丢弃任何值以支持Unit 类型的返回值,但它的语义与以前不同。

对于输入任务,你需要“评估”任务:

run in Compile := Defaults.runTask(
  fullClasspath in Compile,
  mainClass.in(Compile, run),
  runner.in(Compile, run)).evaluated

【讨论】:

  • "任何值都适合Unit类型",只是为了迂腐,更多的是可以丢弃任何值并插入单位值()。
猜你喜欢
  • 2022-01-16
  • 2021-12-27
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 2017-10-10
  • 2011-12-20
  • 2018-02-27
  • 1970-01-01
相关资源
最近更新 更多