我将sbt与native packager插件一起使用,以便为我们的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
是安静的警告,这是另一种气味。
有更好的方法吗?
答案 0 :(得分:2)
您可以使用triggeredBy
。在build.sbt
添加以下行:
publish in Debian <<= (publish in Debian).triggeredBy(publish in Compile)
PS。我觉得你做的方式也很好。如果您担心警告,可以将结果分配给某些val
。
答案 1 :(得分:2)
此处,dependsOn
任务是合适的,如果您不关心返回值:
publish := publish.dependsOn(publish in Debian).value