2015-05-06 1 views
0

Можно ли добавить временную метку к имени созданного zip-файла, которое вы получите при выполнении команды dist?Добавить timestamp в zip, созданный sbt-native-packager

Допустим, что мое название проекта - «backend», а текущая версия для разработчиков - 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

ответ

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 не затрагиваются.

+0

Идеальный, приятный и простой ответ. Спасибо! – ulejon