Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

Ant best practices

11 mai, 2005

Cet article sur OnJava.com donne 15 bonnes pratiques pour ANT. Cela m’a donné l’idée de donner ici quelques astuces et trucs que nous faisons dans l’équipe sur notre projet.

Un ou plusieurs buildefile ? Pour simplifier la maintenance de votre makefile, il faut qu’un seul script situé à la racine de votre projet vous permette de tout faire. Si votre arborescence est très complexe, chaque sous-module aura son propre buildfile pour permettre au(x) dévelopeur(s) de travailler indépendemment. Mais il est important que ces buildfiles soient appelés par des targets situés dans le script principal.

Comment rendre configurable un script Ant ? Prenons un exemple: dans une équipe, chaque développeur dispose d’un compte sur une base Oracle. Lors des tests, un script ANT execute des requêtes SQL. Si vous avez spécifié les proprietés de connexion sous la forme de property le problème est que chaque développeur doit modifier ces valeurs et qu’il ne faut pas ensuite sauvegarder ces valeurs dans un script utilisé par tout le monde. Pour résoudre cela, ANT peut importer un fichier de Properties lorsqu’il démarre. Et vous pouvez même forcer chaque utilisateur à écrire un fichier personnel en utilisant un bout de code ANT comme celui-ci:

  <!-- Author: Nicolas Martignole -->
  <!-- Checks if a property file exists, then load its content -->
  <target name="checkcustomproperty"
          description="Checks that the developer has defined a custom property file">
        <property name="buildproperties.file" value="${basedir}/${user.name}_ant.properties"/>
        <condition property="file.exist">
            <available file="${buildproperties.file}"/>
        </condition>
        <fail unless="file.exist">
            ERROR: ${buildproperties.file} wasn't found.
            Please copy buildtemplate_ant.properties to ${buildproperties.file}
            then customize project properties and restart the build.
        </fail>
    </target>

    <target name="test" depends="checkcustomproperty"
            description="Load and display one of the custom property">
        <property file="${buildproperties.file}" description="Loads the specified file"/>
        <echo message="The custom property file should contain this property: ${property1}"/>
    </target>

Ce code vérifie qu’un fichier a été défini par le développeur, puis le charge en mémoire. Idéalement vous devez fournir un fichier template qui sera géré sous CVS ou SubVersion dans lequel les proprietés
sont définies avec des valeurs d’exemple.

ANT et les tests: ANT est très pratique pour les tests unitaires. Vous pouvez facilement tester votre code et ensuite générer un rapport au format HTML. Reportez-vous au manuel de ANT pour voir comment définir une target junit

ANT et des tests d’intégrations: les équipes d’assurance qualité (Q.A) peuvent utiliser ANT pour leurs tests. En effet il est possible de démarrer une application, d’effectuer des requêtes SQL à partir de ANT et même d’envoyer des emails. Avec CruiseControl dont j’ai déjà parlé, il est donc possible de mettre en place un système complexe de tests automatiques. A voir si l’investissement est intéressant ou non.

Articles similaires:

Default ThumbnailAnt et SQL Default ThumbnailJPA et Maven : gérer 2 persistence.xml distincts Default ThumbnailComment lister le contenu d'un fichier jar ? Default ThumbnailExemple Mule : lire un fichier CSV et écrire vers une base de données

Derniers articles

  • Vis ma vie de Staff/Principal Engineer

    Suite de l’article précédent sur le Staff Engineer. Aujourd’hui, voyons un peu

    20 juillet, 2022
  • Inari

    Devenir Staff Engineer : comment et pourquoi ?

    Après une dizaine d’années en tant que développeur, vous serez un jour

    17 juillet, 2022
  • WeAreDevelopers 2022, conférence à Berlin – jour 1

    Il est 8h40, 19 degrés, vous êtes à Berlin. La queue dehors

    24 juin, 2022

Tweets @nmartignole

  • RT  @e_kaspersky : This report is the beginning of the investigation of this sophisticated attack. Today we publish the first results of the…

    4 hours ago
  • RT  @e_kaspersky : We've discovered a new cyberattack against iOS called Triangulation. The attack starts with iMessage with a malicious at…

    4 hours ago
  • RT  @fcamblor :  @aheritier   @agoncal  Je suis tombé sur ça : https://t.co/SnCEnkmi0F et https://t.co/pHOHOyT9Ob Je ne savais pas que le code é…

    5 hours ago

Mots clés

Apple (32) Architecture (13) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (14) Perso (266) Recrutement (3) Scala (30) scrum (43) Société (3) Startup (20) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur Twitter : @nmartignole

Copyright© 2008 - 2020 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Log In
  • My Account
  • My Profile
  • Reset Password

Le Touilleur Express