3

プロジェクトをWebサーバーにデプロイして、JavaWebStartでデプロイします。ただし、Web Startは変更日を使用して、リソースを再度ダウンロードするかどうかを判断します(デフォルト)。

私が欲しいのは、まだ存在していない(jar)ファイルのみをデプロイする方法です。これは、すべてのjarにビルドバージョン番号を設定することで可能になります。したがって、同じ名前の2つのjarの内容は同じです。

ノート:

  • svnまたはivyからダウンロードするため、jarの変更日はビルドで常に新しくなります(これがこの問題が発生する理由です)。
  • Sunのダウンロードサーブレットやその他のファイルなどを使用してこれを行う方法はありますが、私は怠惰で、それを必要としません。この(より単純な)ソリューションは長期的にはより堅牢になります
4

4 に答える 4

15

アリのコピー タスクを使用している場合 (明示的に使用しているとは言いません)、presentセレクターを試すことができます: http://ant.apache.org/manual/Types/selectors.html#presentselect

<copy todir="target">
  <fileset dir="src">
    <present targetdir="target" present="srconly" />
  </fileset>
</copy>
于 2009-11-30T01:17:22.443 に答える
2

granularity属性を非常に高く設定して、基本的に「ソースファイルが宛先よりも新しい場合に同じ名前のファイルをコピーする」機能を無効にすることができます。

于 2009-11-30T00:52:29.377 に答える
0

同様の問題があり、必要なことを行うために独自の jar タスクを実装することになりました。Ant のソース コードは、開始するのに適した場所です。運が良ければ、Ant の jar タスクをサブクラス化できるかもしれません。思ったほど難しくはなく、私が試したり検討したりした6つの回避策よりもはるかに簡単でした.

于 2009-11-30T01:51:58.860 に答える
0

この問題は、maven とJavaFX および Maven のレイアウトとバージョンを JNLP に保持する WebStart プラグインを使用して解決しました。「一意ではない」SNAPSHOT を使用すると、同じ jar が保持されます (タイムスタンプは無視されます)。

私はそれがあなたにとって良くないことを知っていますが、誰かがそれを試してみませんか?

于 2009-12-06T17:35:36.873 に答える