2014-09-11 42 views
0

我想寫一個ant目標,將創建一個基於一堆java文件和一些屬性文件的jar,但我遇到了麻煩,包括項目的方式屬性文件目前設置。螞蟻jar任務 - 包括文件不在下方basedir

這些都是螞蟻的目標,我有:

1 - 從「myjar.src」文件夾中編譯Java烴源文件,並把產生的階級變成了「myjar.classes」文件夾中。完成此操作後,將所有非.java文件從「myjar.src」複製到「myjar.classes」。

2 - 使用「jar」命令使用basedir = $ {myjar.classes}創建jar,並告訴它包含所有內容。

這些Ant目標我想:

1 - 編譯java烴源文件,並把產生的階級變成了「myjar.classes」文件夾中。僅包含.java文件

2 - 使用basedir = $ {myjar.classes.location}使用「jar」命令創建jar,但還包括來自「myjar.src」的.properties和.xml文件。

關鍵的區別是,我希望從myjar.src中包含的屬性和xml文件包含在使用basedir = $ {myjar.classes}的「myjar.classes」中的類中時 - 如何包含當他們不在「myjar.classes」下面時這些情況?

這是螞蟻的目標我想修改:

<CreateManifest title="myjar classes etc"/> 
     <jar 
      destfile="${myProject.build.jars.dir}\ta_test_driver.jar" 
      basedir="${myjar.classes}" 
      manifest="${manifest}"> 
      <include name="**"/> 
     </jar> 

的原因,我不只是使用目錄一個級別爲BASEDIR是,沒有任何其他jar建立呼叫的項目做那麼,我只是猶豫改變這一點。我確實試圖做到這一點,但無法指定正確的目錄。 (還有其他的罐子使用類似的目錄結構,我現在或將來都不想幹涉它們。)我只是想知道這是否是一種更好的方法來做到這一點?非常感謝。

回答

1

我設法從這裏想出解決辦法:How to include file in Jar through Ant at specific location

這是到底我修改螞蟻電話:

<CreateManifest title="myjar classes etc"/> 
    <jar 
     destfile="${myProject.build.jars.dir}\ta_test_driver.jar" 
     basedir="${myProject.classes}\ta_test_driver" 
     manifest="${manifest}"> 
     <include name="**"/> 
     <zipfileset dir="${myjar.src}" 
      includes="**/*.xml, **/*.properties, **/*.gif" 
      /> 
    </jar> 

通知的zipfileset標籤。