1

Antスクリプトを実行するときに、コンテキストパラメータとしてタイムスタンプをcontext.xmlに書き込もうとしています。

私は次のことを試みていました:

私のcontext.xml

<Parameter name="deployingTimeStamp" 
    value="16.07.2012" <!-- shall be changed! -->
    override="true" />

私のbuild.xml

<tstamp>
    <format property="time" pattern="dd.MM.yyyy"
    unit="hour"/>
</tstamp>

<replace file="${conf.dir}/dev/context.xml" >
    <replacefilter token="deployingTimeStamp" value="${time}" />
</replace>

残念ながら、値は置き換えられません。「deployingTimeStamp」という名前自体が置き換えられ、現在の日付に変更されるだけです。

どうすればこの問題を解決できますか?

4

1 に答える 1

0

replacefilterトークンは、定義したトークンを置き換えます。XMLにプレースホルダー値を追加して(つまり、[[buildTimeStamp]])、次を使用してみませんか。

<replace file="${conf.dir}/dev/context.xml" >
    <replacefilter token="[[buildTimeStamp]]" value="${time}" />
</replace>

したがって、元のxmlは

<Parameter name="deployingTimeStamp" 
value="[[buildTimeStamp]]" <!-- shall be changed! -->
override="true" />

コメントディスカッションに基づく追加のヒント:

あなたがしていないかもしれないことは、最初にあなたの置き換えを実行するためにあなたのメインソースファイルをビルドディレクトリにコピーすることです。これはビルドスクリプトではかなり標準的であるため、最初にファイルをソース管理からチェックアウトすることにしました。ソース管理を使用しておらず、コンピューターにフォルダーがある場合は、アプリの置換やその他のパッケージ化を実行する前に、まずそのフォルダーから別のフォルダーにファイルをコピーする必要があります。

  <copy todir="../dest/dir">
    <fileset dir="src_dir" excludes="**/*.java"/>
  </copy>

ソースを作業ディレクトリにコピーする上記のようなもの。次に、それに対してアクションを実行し、その後、パッケージ(つまり、jarファイルまたはwarファイルまたはjavaの場合は何か)があるときにそれを削除します。Antのドキュメントでも削除機能を確認できます。

于 2012-07-16T15:40:33.567 に答える