2013-01-25 7 views
8

Ich möchte Build-Informationen in die Fußzeile meines Spiels hinzufügen! Anwendung (Play! 2.0.4 mit Scala), ähnlich wie hier bei stackoverflow. Ich bin neu bei SBT und einfach nur glücklich, dass die meiste Zeit alles wie ein Zauber funktioniert. :-)Play 2.0: Wie SBT Build-Nummer Fußzeile hinzufügen

Grundsätzlich möchte ich die Anwendungsversion von project/Build.scala extrahieren, das aktuelle Datum hinzufügen, und schließlich eine Build-Nummer hinzufügen (die automatisch inkrementiert wird, aber das ist vielleicht das Thema einer anderen Frage). Diese Information sollte zu einer Datei conf/build-info.conf hinzugefügt werden, die in dem Haupt conf/application.conf enthalten ist. Ich weiß, wie ich die Build-Informationen aus der Anwendungskonfiguration extrahiere und sie zu den Seiten hinzufüge.

Vielen Dank für Ihre Zeit!

Antwort

2

Ich habe eine Erweiterung für das Skript bash entwickelt, das das eigentliche Staging und Starten meiner Anwendung durchführt und so die Build-Informationen liefert, bevor SBT/play gestartet wird. Diese Erweiterung greift die Revision des Arbeitsverzeichnisses aus dem Repo Mercurial und schreibt diese mit dem aktuellen Datum in die Datei conf/build-info.conf. Ich habe davon Abstand genommen, einen automatisch inkrementierten Build-Zähler zu verwenden, da die vom Repo bereitgestellten Informationen ausreichen sollten.

#!/bin/bash 
CHANGESET=`hg tip | grep changeset` 
while IFS=":" read -ra PARTS; do 
    REV=`echo "${PARTS[1]}" | tr -d ' '`@`hg branch` 
    echo application.build=\"`date +"%Y-%m-%d"` "[$REV]"\" > conf/build-info.conf 
done <<< "$CHANGESET" 

in einer Datei führt eine Linie containg ähnlich wie

application.build="2013-01-25 [[email protected]]" 

Dieses Skript leicht zu grep die Datei project/Build.scala für die Anwendungsversion erweitert werden könnte und nimmt diese in den Build-Informationen erstellt.

Fühlen Sie sich frei zu kopieren/einfügen und anzupassen/zu verbessern. Keine Zuordnung erforderlich, aber Feedback hier ist immer willkommen :-)

1

Eine einfache Möglichkeit, Build-Informationen zum Kompilieren zu Ihrem Projekt hinzuzufügen, ist die Verwendung eines SBT-Plugins namens sbt-buildinfo.

Wählen Sie zuerst die richtige Version basierend auf Ihrer SBT-Version und folgen Sie den Anweisungen. Standardmäßig werden nur Ihre Anwendungen name, version, scalaVersion und sbtVersion zum Zeitpunkt der Kompilierung dokumentiert.

die build time, dependencies oder andere benutzerdefinierte Wert hinzuzufügen, können Sie diesen Code in Ihre build.sbt hinzufügen und anpassen es:

buildInfoKeys ++= Seq[BuildInfoKey](
     resolvers, 
     libraryDependencies in Test, 
     BuildInfoKey.map(name) { case (k, v) => "project" + k.capitalize -> v.capitalize }, 
     "custom" -> 12345, // computed at project load time 
     BuildInfoKey.action("buildTime") { 
     System.currentTimeMillis 
     } // re-computed each time at compile 
    ) 
Verwandte Themen