1

我将 sbt 与本机打包程序插件一起使用,以便为我们的 Play 2.2 应用程序构建 Debian 包。我们使用debian:publish命令将包上传到我们的 Artifactory 服务器,并使用publish命令发布常规 Java jar。

我希望能够使用常规publish命令来发布 jar 文件和 Debian 软件包。我认为我需要以某种方式将范围内的发布任务与Debian范围内的常规任务结合起来Compile,但我真的找不到任何关于如何做到这一点的文档。

我想出了以下代码,它有效,但在我看来是“错误”的做法:

publish := { // Also publish deb files
  val value = publish.value
  (publish in Debian).value
}

特别是第二行似乎是错误的,因为它忽略了价值。这val是为了消除警告,这是另一种气味。

有一个更好的方法吗?

4

2 回答 2

2

在这里,dependsOn任务是合适的,如果您不关心返回值:

publish := publish.dependsOn(publish in Debian).value
于 2014-07-09T13:39:42.380 回答
2

您可以使用triggeredBy. 在您build.sbt添加以下行:

publish in Debian <<= (publish in Debian).triggeredBy(publish in Compile)

PS。我认为你这样做的方式也很好。如果您担心警告,可以将结果分配给 some val

于 2014-07-08T08:18:23.167 回答