Question

Chaque fois que je crée un nouveau projet, je copie le fichier ant du dernier projet dans le nouveau et j'apporte les modifications appropriées (en essayant en même temps de le rendre plus flexible pour le projet suivant).Mais comme je n'y avais pas vraiment pensé au début, le fichier a commencé à paraître vraiment moche.

Avez-vous un modèle Ant qui peut être facilement porté dans un nouveau projet ?Des conseils/sites pour en fabriquer un ?

Merci.

Était-ce utile?

La solution

Une alternative à la création d'un modèle consiste à en faire évoluer un en généralisant progressivement le script Ant de votre projet actuel afin qu'il y ait moins de modifications à apporter la prochaine fois que vous le copierez pour l'utiliser sur un nouveau projet.Vous pouvez faire plusieurs choses.

Utilisez ${ant.project.name} dans les noms de fichiers, vous n'aurez donc qu'à mentionner le nom de votre application dans l'élément de projet.Par exemple, si vous générez myapp.jar :

<project name="myapp">
   ...
   <target name="jar">
      ...
      <jar jarfile="${ant.project.name}.jar" ...

Structurez la structure de vos répertoires sources afin de pouvoir empaqueter votre build en copiant des répertoires entiers, plutôt qu'en nommant des fichiers individuels.Par exemple, si vous copiez des fichiers JAR dans une archive d'application Web, procédez comme suit :

<copy todir="${war}/WEB-INF/lib" flatten="true">
   <fileset dir="lib" includes="**/*.jar">
</copy>

Utilisez les fichiers de propriétés pour les propriétés des fichiers de build spécifiques à la machine et au projet.

<!-- Machine-specific property over-rides -->
<property file="/etc/ant/build.properties" />

<!-- Project-specific property over-rides -->
<property file="build.properties" />

<!-- Default property values, used if not specified in properties files -->
<property name="jboss.home" value="/usr/share/jboss" />
...

Notez que les propriétés Ant ne peuvent pas être modifiées une fois définies, vous remplacez donc une valeur en définissant une nouvelle valeur. avant la valeur par défaut.

Autres conseils

Tu peux donner http://import-ant.sourceforge.net/ un essai.Il s'agit d'un ensemble d'extraits de fichiers de construction qui peuvent être utilisés pour créer de simples fichiers de construction personnalisés.

J'ai eu le même problème et j'ai généralisé mes modèles et les ai développés dans mon propre projet : Antiplaque.Peut-être que c'est aussi utile pour vous.

Si vous travaillez sur plusieurs projets avec des structures de répertoires similaires et que vous souhaitez vous en tenir à Ant au lieu d'aller à Maven, utilisez le Tâche d'importation.Il vous permet de demander aux fichiers de construction du projet d'importer simplement le modèle et de définir toutes les variables (chemin de classe, dépendances, ...) et d'avoir tous les réel créez le script dans le modèle importé.Il permet même de remplacer les tâches dans le modèle, ce qui vous permet d'insérer des hooks pré ou post cibles spécifiques au projet.

Avant, je faisais exactement la même chose....puis je suis passé à maven.Maven s'appuie sur un simple fichier XML pour configurer votre build et sur un référentiel simple pour gérer les dépendances de votre build (plutôt que de vérifier ces dépendances dans votre système de contrôle de code source avec votre code).

Une fonctionnalité que j'aime vraiment est la facilité avec laquelle il est possible de versionner vos fichiers jar - en gardant facilement les versions précédentes disponibles pour les anciens utilisateurs de votre bibliothèque.Cela fonctionne également à votre avantage lorsque vous souhaitez mettre à niveau une bibliothèque que vous utilisez, comme Junit.Ces dépendances sont stockées sous forme de fichiers séparés (avec leurs informations de version) dans votre référentiel maven afin que les anciennes versions de votre code aient toujours leurs dépendances spécifiques disponibles.

C'est une meilleure fourmi.

Avant, je faisais exactement la même chose....puis je suis passé à maven.

Oh, c'est Maven 2.J'avais peur que quelqu'un utilise encore sérieusement Maven de nos jours.Laissons les blagues de côté :si vous décidez de passer à Maven 2, vous devez faire attention lorsque vous recherchez des informations, car Maven 2 est une réimplémentation complète de Maven, avec certaines décisions de conception fondamentales modifiées.Malheureusement, ils n'ont pas changé le nom, ce qui a été une grande source de confusion dans le passé (et l'est encore parfois, compte tenu de la nature « mémoire » du Web).

Une autre chose que vous pouvez faire si vous voulez rester dans l'esprit des fourmis est d'utiliser Lierre pour gérer vos dépendances.

Une chose à considérer : si vous utilisez Eclipse, consultez les tâches ant4eclipse.J'utilise un seul script de construction qui demande les détails configurés dans Eclipse (répertoires sources, chemin de construction comprenant les projets de dépendance, ordre de construction, etc.).

Cela vous permet de gérer les dépendances en un seul endroit (Eclipse) tout en pouvant utiliser une version en ligne de commande pour l'automatisation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top