2013-01-25 9 views
8

私のPlayのフッターにビルド情報を追加したいと思います!アプリケーション(Play!2.0.4とScala)は、ここでstackoverflowと同様に動作します。私はSBTには新しく、ほとんどすべての時間が魅力のように機能することを嬉しく思っています。 :-)Play 2.0:ページフッターにSBTビルド番号を追加するには

基本的には、project/Build.scalaからアプリケーションのバージョンを抽出し、現在の日付を追加し、最後にビルド番号を追加します(自動的に増分されますが、投稿する別の質問のトピックかもしれません)。この情報は、に含まれるconf/build-info.confファイルに追加する必要があります。私はアプリケーションの構成からビルド情報を抽出してページに追加する方法を知っています。

ありがとうございました!

答えて

2

私はアプリケーションの実際のステージングと起動を行うbashスクリプトの拡張を思いついたので、SBT /再生を開始する前でもビルド情報を提供していました。この拡張機能は、Mercurialリポジトリから作業ディレクトリのリビジョンを取得し、これを現在の日付とともにファイルconf/build-info.confに書き込みます。レポが提供する情報は十分である必要があるため、私は自動的に増分されたビルドカウンターを使用することを控えました。

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

このスクリプトは簡単grepにアプリケーションのバージョン用のファイルproject/Build.scalaを延長してできることに類似した行をcontaingファイルが得られ

#!/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" 

は、作成したビルド情報でこれを含めます。

自由にコピー/貼り付け、適応/改善してください。帰属は必要ありませんが、ここのフィードバックはいつでも歓迎します:-)

1

コンパイル時にプロジェクトにビルド情報を追加する簡単な方法は、sbt-buildinfoというSBTプラグインを使用することです。

まず、SBTバージョンに基づいて適切なバージョンを選択し、指示に従ってください。既定では、アプリケーションname,version,scalaVersionおよびsbtVersionのみがコンパイル時に文書化されています。

build timedependenciesまたはその他のカスタム値を追加するには、あなたがあなたのbuild.sbtにこのコードを追加してカスタマイズすることができます。

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 
    ) 
関連する問題