将时间戳添加到由sbt-native-packager创建的zip

时间:2015-05-06 06:41:07

标签: playframework sbt sbt-native-packager

是否可以在执行dist命令时为生成的zip文件名附加时间戳?

假设我的项目名称是“后端”,当前的开发版本是0.2.3-SNAPSHOT。我想要做的是执行dist命令并获取一个名为backend-0.2.3-SNAPSHOT-20150506.zip的文件。 但是,我只想在快照版本上执行dist时附加时间戳,而不是生产版本(例如0.2.3)。

我正在使用Play 2.4.0-RC1和sbt 0.13.8

1 个答案:

答案 0 :(得分:3)

 import com.typesafe.sbt.packager.Keys._

 packageName in Universal := {
   val name = (packageName in Universal).value
   def timestamp = new java.text.SimpleDateFormat("yyyyMMdd") format new java.util.Date()
   if (isSnapshot.value) s"$name-$timestamp" else name
 }

以下是distversion := "1.0-SNAPSHOT"version := "1.0"的影响(消除了一些噪音):

 [play-scala] $ dist
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-SNAPSHOT-sources.jar ...
 [info] Wrote /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-SNAPSHOT.pom
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-SNAPSHOT-web-assets.jar ...
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-SNAPSHOT-javadoc.jar ...
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-SNAPSHOT.jar ...
 [info]
 [info] Your package is ready in /Users/dnw/Desktop/play-scala/target/universal/play-scala-1.0-SNAPSHOT-20150506.zip

 [play-scala] $ set version := "1.0"
 [info] Defining *:version

 [play-scala] $ dist
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-sources.jar ...
 [info] Wrote /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0.pom
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-web-assets.jar ...
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0-javadoc.jar ...
 [info] Packaging /Users/dnw/Desktop/play-scala/target/scala-2.11/play-scala_2.11-1.0.jar ...
 [info]
 [info] Your package is ready in /Users/dnw/Desktop/play-scala/target/universal/play-scala-1.0.zip

请注意,jar文件名不受影响。