2009-10-01 21 views
2

我不希望螞蟻的罐子任務通知我每次跳過文件,因爲該文件已被添加。我得到這個:如何抑制重複的螞蟻罐警告

[jar] xml/dir1/dir2.dtd already added, skipping 

有沒有辦法關閉此警告?

回答

1

我不知道對jar task任何選項來抑制這些信息,除非你用-quiet開關,在這種情況下,你可能看不到你想要的其他信息運行整體構建。

一般情況下,如果你有很多重複的文件,這是一件好事,要警告他們,因爲不同的文件可能會添加到你所期望的。這個可能是表示該構建的以前的目標沒有完成它的工作,儘管顯然沒有更多細節,但是不可能說。

出於興趣爲什麼你有重複的文件?

+0

我正在將XML文件的幾個目錄合併爲一個創建jar。重複項是DTD。基本上: */xml/data/*。{xml,dtd} } - > params.jar(在jar中以xml/params/*。xml命名的文件) 我正在修補已經存在的系統,並且我需要儘可能保留相同的結構。我只需要用螞蟻而不是可怕的自定義代碼來構建它。 – skiphoppy 2009-10-05 16:51:39

+0

這沒有出來 - 在/ xml/data和/ xml/params之前讀一個星號,你會得到我輸入的內容。 :) – skiphoppy 2009-10-05 16:52:59

2

這是一個較老的問題,但有一種明顯的方法可以排除重複警告,不要包含重複文件。您可以通過以下兩種方式之一進行:

  1. 排除以某種方式重複的文件,或
  2. 將文件複製到一個臨時區域,使之與重複的CP任務的交易,而不是jar任務。

所以,與其做:

<jar destfile="${dist}/lib/app.jar"> 
    <fileset dir="a" include="xml/data/*.{xml,dtd}"/> 
    <fileset dir="b" include="xml/data/*.{xml,dtd}"/> 
    <fileset dir="c" include="xml/data/*.{xml,dtd}"/> 
</jar> 

做的一個:

<jar destfile="${dist}/lib/app.jar"> 
    <fileset dir="a" include="xml/data/*.{xml,dtd}"/> 
    <fileset dir="b" include="xml/data/*.xml"/> 
    <fileset dir="c" include="xml/data/*.xml"/> 
</jar> 

<copy todir="tmpdir"> 
    <fileset dir="a" include="xml/data/*.{xml,dtd}"/> 
    <fileset dir="b" include="xml/data/*.{xml,dtd}"/> 
    <fileset dir="c" include="xml/data/*.{xml,dtd}"/> 
</copy> 
<jar destfile="${dist}/lib/app.jar"> 
    <fileset dir="tmpdir" include="xml/data/*.{xml,dtd}"/> 
</jar> 
<delete dir="tmpdir"/> 

編輯:底座上的評論這個答案,還有第三種選擇,雖然它是一個fa ir有點更多的工作......你可以隨時把源代碼交給jar任務,並修改它,以便它不會打印出警告。您可以保留這個作爲您的樹的本地修改,將其移動到不同的包並自行維護它,或嘗試將修補程序推回到上游。

+1

我強調不要任何暫存區域。我正試圖擺脫過多的臨時區域。 – skiphoppy 2010-01-19 17:34:52