2011-08-10 20 views
3

以前作成した戦争の中のいくつかのファイルを更新するためにjarタスクを使用するANTタスクがあります。 [ファイルはWARと配布物のコンパイルの間に処理されます。] ANTに更新するように指定したすべてのファイルを更新するにはどうすればよいですか? update = "[...]"というJARファイルの新しい作成を強制するか、(必要に応じて新しいファイルを追加する/既存のものを更新する)ことができるJARの属性があります。WAR/JARのファイルを日付に関係なく更新する

例:

  • ジャーが作成されコンパイルされ

    1. Javaクラス(ES)
    2. の.warは、スクリプトがジャー
    3. の.warを修正するために実行します
    4. 作成され
    5. 変更されたJarsを更新する必要があります[Jarsは戦争中のすべてのファイルのサブセットです]

    私が実行している問題は、更新を指示されているJarsが最終ステップで更新されていないことです。ログは、処理されたばかりのJarsが「古くなった」と主張しています。アップデートを強制的に実行できる方法はありますか?私が"jar [...] update"をfalseに戻すと(デフォルトでは)正しいJarファイルがそこに置かれますが、戦争の残りのファイルはそこに置かれません。

    注:すべてが完了した後でこれを移動してWARを生成できることがわかりました。しかし、これは私の選択肢ではありません。問題の

    Antタスクは:

    <target name="(the 'Rewaring task')" depends="step-3"> 
        <echo>Adding modifed jars to war</echo> 
        <jar destfile="${output.war.dir}/existing.war" update="true"> 
         <zipfileset dir="${output.jar.dir}/modded-jars" prefix="folder" /> 
        </jar> 
    </target> 
    

    具体的には、私がいる問題は、「更新」動作です。

  • +1

    antビルドファイルの関連部分を投稿できますか? – Kal

    +0

    なぜ再戦争はオプションではないのですか?あなたは 'jar'タスクではなく 'war'タスクを使ってアップデートをやってみましたか? (btw:フォーマットの誤りのために 'もし私が切り替えると...'の部分が見えません) –

    +0

    ステップ4と5は別々のantスクリプトに入れられているので、ステップ3の警告を繰り返すことはできません。ビルドシステムはちょっとファンキー。私が問題を抱えている特定の課題が掲載されています。 – monksy

    答えて

    1

    Jarタスクが正しいと思われます。

    ファイルの更新日時が正しいことを確認してください。つまり、実際にzipfileset/updateオプションで比較されていますか?

    Jarsに署名するときに[preservelastmodified]オプションが "true"(デフォルト:false)に設定されているときにこの問題が発生しました。

    修正するには、署名オプションを変更するだけで済みます。

    関連する問題