IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Migrer nos builds personnalisés vers Maven


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut Migrer nos builds personnalisés vers Maven
    Bonjour,

    Je suis nouvelle dans l'utilisation de Maven. Ce produit nous a été conseillé et je dois vérifier si nous pouvons utiliser ce produit pour nos builds. J'ai lu beaucoup sur le sujet et j'ai plusieurs interrogations. Si quelqu'un pourrait m'aider, cela serait vraiment apprécié. Merci à l'avance.

    Voici mes interrogations:

    Dans notre cas, Maven ne servirait pas à compiler des applications Java, mais plutôt à rouler des scripts SQL, à copier des modules (forms/reports), à déployer des ear files déjà construits sur un serveur Weblogic 10.3, à charger des fichiers xml dans une base de données et à rendre non disponible l'application. Je ne sais pas si tout cela est possible avec Maven ? Avec l'information que j'ai soutiré de plusieurs guides et forums, il semble que cela soit possible, mais je voulais valider avec l'expérience que vous avez.

    Si cela est possible, est-ce que vous avez des conseils sur comment structurer le repository ? Par exemple, mettre tous les scripts sql ensemble dans un répertoire.

    Pour la gestion des différents builds, je n'ai pas vu dans les documents comment conserver toutes les versions des builds. Par exemple, si nous voulons rouler le build 1.2, mais que la version du build en cours est 1.6. Est-ce que nous avons à conserver tous les fichiers pom.xml qui sont les fichiers où résident ce qui est fait dans le build pour pouvoir rerouler le build 1.2 ?


    Merci.

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par isabelle_dba Voir le message
    Bonjour,
    Bonjour, et bienvenue ici !

    Citation Envoyé par isabelle_dba Voir le message
    Dans notre cas, Maven ne servirait pas à compiler des applications Java
    Pourquoi pas ? Maven reste avant tout un outil de build. Pourquoi ne pas l'utiliser ?
    Qu'est-ce que vous utilisez pour builder vos applications ?

    Citation Envoyé par isabelle_dba Voir le message
    , mais plutôt à rouler des scripts SQL, à copier des modules (forms/reports), à déployer des ear files déjà construits sur un serveur Weblogic 10.3, à charger des fichiers xml dans une base de données et à rendre non disponible l'application. (...) Si cela est possible, est-ce que vous avez des conseils sur comment structurer le repository ? Par exemple, mettre tous les scripts sql ensemble dans un répertoire.
    En fait, Maven peut presque tout faire mais ça risque d'être parfois compliqué et hors cadre.
    Par exemple, il est possible d'ouvrir une boite de conserve avec une perceuse, mais il faut admettre que ce n'est pas l'outil le plus adapté

    Nativement, Maven va suivre un cycle de vie assez strict. Les étapes principales sont les suivantes :

    • Compilation du code
    • Compilation + exécution des tests
    • Packaging

    Après, rien ne t'empêche de faire des choses au delà de ces actions. Par exemple déployer un WAR sur un serveur d'applications, ou autre.

    Quand on sort de ce cadre, il faut trouver et utiliser le plugin qui va bien. Quand il n'existe pas ou qu'il ne répond pas à nos attentes, on peut écrire son propre plugin, ce qui n'est pas très compliqué. Il reste aussi une dernière solution : utiliser le plugin ant-run, qui permet d'exécuter des tâches Ant à un moment donné dans le cycle de vie de Maven. C'est très pratique quand on souhaite exécuter des tâches un peu complexes, comme par exemple lancer l'exécution de scripts SQL sur une base de données.


    Citation Envoyé par isabelle_dba Voir le message
    Pour la gestion des différents builds, je n'ai pas vu dans les documents comment conserver toutes les versions des builds. Par exemple, si nous voulons rouler le build 1.2, mais que la version du build en cours est 1.6. Est-ce que nous avons à conserver tous les fichiers pom.xml qui sont les fichiers où résident ce qui est fait dans le build pour pouvoir rerouler le build 1.2 ?
    Là, ce n'est pas du tout à Maven (ou un autre outil de build) de se charger de cela. Les gestionnaires de sources (CVS, Subversion, Git, etc.) sont avant tout destinés à cela.
    A chaque release importante, il suffit de tagguer les sources, et de cette façon, il est possible de revenir à une version donnée dans le temps.
    L'intérêt d'avoir un process de build propre est qu'il est reproductible. Donc normalement, en lançant un build sur une ancienne version, ça devrait être possible.
    A titre d'exemple, on me demande actuellement de remettre une version d'une application qui était en production en 2009. Il me suffit de récupérer les sources taggées à la bonne version, et de relancer un build Maven, et zou, c'est fait (hormis la base de données qui a évolué depuis, mais c'est un autre sujet).


    Pour résumer, Maven est un très bon outil, mais sans doute faudrait-il se poser la question de savoir s'il est vraiment le plus adapté à tes besoins. J'ai un peu l'impression comme ça que tu souhaites prendre une voiture de courses* pour faire du tout-terrain...

    Peut-être que Gradle sera plus adapté car il est plus ouvert d'esprit que Maven dès que l'on souhaite faire des choses exotiques **


    * note pour Grégory s'il passe sur ce sujet : oui, je compare Maven à une voiture de courses si je veux
    ** note pour Grégory s'il passe sur ce sujet : oui, je dit que Gradle est exotique si je veux
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut
    Merci beaucoup pour les informations.

    Nos applications sont des applications Forms Web, des applications Apex ou des services Web. Tous les produits utilisés sont des produits Oracle. Les services Web sont construits par un développeur utilisant JDeveloper d'Oracle. Nous ne voulons pas compiler les sources avec Maven, mais continuer à utiliser JDeveloper pour générer le fichier à installer. Nous n'avons pas d'applications Java à l'exception des services Web.

    Pour déployer nos builds, nous utilisons des scripts maison en linux et une partie est faite manuellement par une administrateur. Par exemple, un build normal pour une applications Forms Web comprend en général des scripts sql, des reports, des forms et des fichiers xml. Pour une application Apex, un build ne comprend que des scripts sql. Pour une service Web, un build comprend des scripts sql et un ear file à déployer.

    C'est un peu ce que je craignais avec Maven, d'être hors cadre. Mais comme vous dîtes, cela est tout de même possible, mais il va y avoir du travail à faire.

    Dans notre cas, Maven n'aurait pas à compiler du code, ni à exécuter des tests et ni à packager le tout à moins que je ne me trompe. Comme Maven a un cycle de vie assez strict, est-ce que celui-ci pourrait rencontrer un problème à ne pas suivre un cycle normal ?

    Au niveau du repository, j'ai lu qu'il ne fallait pas mettre de fichiers n'ayant pas de lien avec l'application Java dans le répertoire /src du projet. Est-ce que vous avez une convention pour l'emplacement des fichiers comme des scripts sql ou autres dans le projet ?

    Pour revenir à la gestion des versions, cela signifie que le projet Maven fait pour l'application est une structure pour tous nos builds. Nous avons seulement à mettre les fichiers d'un build X dans les bons répertoires du build pour que Maven puisse déployer le tout. Tous les fichiers doivent donc être gérés à l'extérieur de Maven.

    Ce produit a été déterminé par les architectes et je fais en quelques sortes la preuve de concept pour voir s'il répond à nos besoins.

    Je prends note pour Gradle.

    Merci beaucoup !
    Isabelle

Discussions similaires

  1. Comment migrer en douceur vers maven?
    Par Aldian dans le forum Maven
    Réponses: 15
    Dernier message: 30/03/2011, 14h58
  2. Migrer une application Access vers un projet adp
    Par lazizou dans le forum Projets ADP
    Réponses: 3
    Dernier message: 29/05/2006, 16h50
  3. Migrer du Visual C++ vers Delphi
    Par Alajouanine dans le forum Langage
    Réponses: 8
    Dernier message: 29/09/2005, 12h20
  4. Migrer un fichier excel vers une base sql serveur
    Par vdavid1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/07/2005, 16h26
  5. Réponses: 1
    Dernier message: 13/05/2002, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo