3

アプリケーションでサブバージョンのリビジョン番号と最終変更日を表示するソリューションを検討しています (GWT で記述されているため、リフレクションは使用できません)。Subversion キーワードでリビジョンをエンコードすることは、現在のファイルにのみ適用されるため機能しません。注釈を使用したより良い解決策はありますか? (たとえば、コンパイル時に実行される別のクラス、プロジェクト全体で最新のリビジョン # を取得し、リビジョンと最終変更日をソース コードに挿入します)

4

3 に答える 3

2

私はkn

@SvnRevision("$Id$")
public class Foo {
}

次に、クラスはすべてバージョンで注釈が付けられます。実行時にクエリできるように、注釈が実行時保持を持つものとして定義されていることを確認する必要があります。

編集

OK、SVNにはその機能がないので、それをエミュレートするMavenプラグインを作成します。MavenはすべてのファイルのSCM情報にアクセスできるため、ビルドフェーズ中に同じキーワード拡張を実行させることができます。

于 2009-05-19T20:43:01.983 に答える
2

注釈は、実際にはこのために設計されていません。ビルドの一部として行うのが最も簡単です。

Ant を使用すると、バージョン情報を含むファイルを生成し、それをアプリケーションの JAR に含め、リソースとしてサーバーにロードし、RPC によってブラウザー側のコードに提供できます。Ant は、ファイルをコピーする際にファイル内の文字列を置換することもできます。これを使用して、アプリケーションの HTML ファイルにバージョン番号を含めることができます (その場合、RPC は必要ありません)。

Maven についてはわかりませんが、同じようなことができないとしたら、とても驚きます。

于 2009-05-29T22:26:36.217 に答える
0

Subversion にはまだ $Id$ 機能がありますが、ファイルの svn:keywords プロパティを使用して明示的に有効にする必要があります (「Id」に設定します)。

参照: http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.keywords.html

したがって、上記の @SvnRevision を使用した Jherico のアイデアは機能します。

于 2009-10-26T21:03:33.590 に答える