2014-09-11 2 views
0

J'essaie d'écrire une cible ant qui va créer un pot basé sur un tas de fichiers java et certains fichiers de propriétés, mais j'ai du mal à inclure les fichiers de propriétés de la façon dont le projet est mis en place actuellement.Ant tâche jar - Inclure les fichiers non sous basedir

Ce sont les cibles ant que j'ai:

1 - compiler les fichiers souce java du dossier "myjar.src" et mettre les classes obtenues dans un dossier "myjar.classes". Une fois cela fait, copiez tous les fichiers non .java de "myjar.src" vers "myjar.classes".

2 - Créez le pot en utilisant la commande "jar" en utilisant basedir = $ {myjar.classes} et dites-lui d'inclure tout.

Ce sont les cibles de fourmis je veux:

1 - compiler les fichiers souce java et mettre les classes obtenues dans un dossier "myjar.classes". 2 Seuls les fichiers .java sont inclus

2 - Créez les fichiers jars en utilisant la commande "jar" en utilisant basedir = $ {myjar.classes.location} mais en incluant également les fichiers .properties et .xml de "myjar.src." La différence principale est que je veux inclure les propriétés et les fichiers xml de "myjar.src" lorsque je classe les classes dans "myjar.classes" en utilisant basedir = $ {myjar.classes} - Comment inclure ces fies quand ils ne sont pas sous "myjar.classes"?

Ceci est la cible ant que je veux modifier:

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

La raison pour laquelle je ne suis pas juste en utilisant un répertoire d'un niveau pour basedir est qu'aucun des autres appels de création de pot dans le projet ne cela, et j'hésite à changer cela pour celui-ci. J'ai essayé de le faire, mais j'ai eu du mal à spécifier le bon répertoire. (Il y a d'autres jars qui utilisent une structure de répertoire similaire, et je ne veux pas interférer avec eux maintenant ou dans le futur.) Je me demandais juste si c'est une meilleure façon de faire cela? Merci beaucoup.

Répondre

1

j'ai réussi à comprendre cela d'ici: How to include file in Jar through Ant at specific location

Ce fut mon appel ant modifié à la fin:

<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> 

Notez que le tag zipfileset.

Questions connexes