【问题标题】:SBT: could not define taskSBT:无法定义任务
【发布时间】:2014-03-03 22:01:28
【问题描述】:

这是我的任务。除了 swager jars 之外,它还应该从 war 的 lib 中删除所有内容。

packageCleanWar :=  {
  val war: File = (packageWar in Compile).value
  val tmpDir = target.value / "tmp"
  val warPath = war.getAbsolutePath
  val nf = (s: String) => s match {
    case s if s.startsWith("WEB-INF/lib/swagger") => true
    case s if s.startsWith("WEB-INF/lib/") => false
    case _ => true
  }
  IO.unzip(war, tmpDir, NameFilter.fnToNameFilter(nf))
  IO.delete(war)
  val newWar = new File(warPath)
  IO.zip(Path.allSubpaths(tmpDir), newWar)
  newWar
}

在尝试加载它时,我收到以下信息

C:\work\project\server\build.sbt:55: error: not found: value packageCleanWar
packageCleanWar :=  {
^
[error] Type error in expression

尽管我以与here 提到的相同样式定义它。我做错了什么?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    您需要声明任务并定义它:

    lazy val packageCleanWar = taskKey[File]("packageCleanWar description")
    
    packageCleanWar :=  {
      val war: File = (packageWar in Compile).value
      val tmpDir = target.value / "tmp"
      val warPath = war.getAbsolutePath
      val nf = (s: String) => s match {
        case s if s.startsWith("WEB-INF/lib/swagger") => true
        case s if s.startsWith("WEB-INF/lib/") => false
        case _ => true
      }
      IO.unzip(war, tmpDir, NameFilter.fnToNameFilter(nf))
      IO.delete(war)
      val newWar = new File(warPath)
      IO.zip(Path.allSubpaths(tmpDir), newWar)
      newWar
    }
    

    这是来自Tasks

    【讨论】:

      猜你喜欢
      • 2014-10-07
      • 2023-03-03
      • 2014-05-23
      • 2016-11-08
      • 2017-06-15
      • 2017-08-12
      • 2012-12-28
      • 2014-06-18
      • 2016-08-13
      相关资源
      最近更新 更多