2014-09-11 1 views
0

Я пытаюсь написать муравьиную цель, которая создаст банку на основе кучи java-файлов и некоторых файлов свойств, но у меня возникают проблемы, включая файлы свойств, в настоящее время.Ant jar task - Включить файлы, не находящиеся под baseir

Это муравей цели у меня есть:

1 - Компиляция файлов Java Souce из папки «myjar.src» и поместить полученные классы в папку «myjar.classes». После этого скопируйте все файлы без .java с «myjar.src» в «myjar.classes».

2 - Создайте банку, используя команду «jar», используя basedir = $ {myjar.classes} и сообщите ей, чтобы она включала все.

Это муравей цели я хочу:

1 - Компиляция Souce файлы Java и положить получившиеся классы в папку «myjar.classes». Включены только файлы .java.

2 - Создайте банки, используя команду «jar», используя basedir = $ {myjar.classes.location}, но также включите .properties и .xml-файлы из «myjar.src».

Ключевое различие заключается в том, что я хочу, чтобы свойства и xml-файлы из «myjar.src» включались, когда я упаковываю классы в «myjar.classes», используя basedir = $ {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 является то, что ни один из других вызовов создания банка в проекте не делать это, и я не решаюсь изменить это только для этого. Я попытался это сделать, но не смог определить правильный каталог. (Есть другие банки, которые используют аналогичную структуру каталогов, и я не хочу вмешиваться в них ни сейчас, ни в будущем.) Мне просто интересно, можно ли это сделать лучше? Огромное спасибо.

ответ

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 тег.