8

Playのフッターにビルド情報を追加したいです!ここでstackoverflowで実行したのと同様のアプリケーション(Play!2.0.4 with Scala)。私はSBTを初めて使用し、ほとんどの場合、すべてが魅力のように機能することを嬉しく思います。:-)

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

お時間をいただきありがとうございます!

4

2 に答える 2

2

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

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

結果として、次のような行を含むファイルが作成されます

application.build="2013-01-25 [98@bug-001]"

このスクリプトは、アプリケーションバージョンgrepのファイルに簡単に拡張でき、作成されたビルド情報に含めることができます。project/Build.scala

自由にコピー/貼り付けおよび適応/改善してください。アトリビューションは必要ありませんが、ここでのフィードバックはいつでも歓迎です:-)

于 2013-01-25T08:07:41.853 に答える
1

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

まず、SBTのバージョンに基づいて適切なバージョンを選択し、指示に従います。デフォルトでは、アプリケーション、、、およびのみがnameコンパイル時に文書化されます。versionscalaVersionsbtVersion

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
    )
于 2016-03-09T11:29:11.797 に答える