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 :

Maven 3 et Yaml. Beaucoup d'exemples de scripts YAML, mais aucun d'exécution de maven avec.


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut Maven 3 et Yaml. Beaucoup d'exemples de scripts YAML, mais aucun d'exécution de maven avec.
    Bonjour,

    Je dois hélas introduire ainsi mon sujet: il n'y a rien qui m'exaspère plus que Maven. J'ai du abandonner Maven 2 autrefois, par lassitude des plugins en alpha et beta, des trucs "presque prêts" jamais documentés et rarement fonctionnels le moment venu.

    Quel délire que cette version là! Le mot n'est pas faible. La complexité du XML à produire pour obtenir de très faibles résultats, tout d'abord. Une simple création de jar, c'est 10 à 15 lignes de XML de tribut. Et le temps consacré par les équipes projet à maintenir des pom.xml est directement liée à l'instabilité étonnante de Maven 2, prompt à planter tout seul, et prendre ainsi plus de 10% du temps des projets où je l'ai vu employé en stricte maintenance corrective.

    Maven 2, c'est l'outil que je vois lancé le plus souvent en debug parmi tous ceux que je connais.


    Alors j'ai mis beaucoup d'espoirs dans Maven 3, puisque c'est une refonte.
    Et parmi mes attentes, la transformation du XML en YAML m'a suscité beaucoup d'espoirs.

    Et sur les sites, allant dans ce sens, j'ai vu plein d'exemples de YAML.
    Mais rien qui soit capable d'exécuter aujourd'hui un pom.yaml ou pom.yml.

    C'est à dire que:
    Téléchargeant Maven 3.0.1 et tapant mvn install sur un projet ayant un pom.yml ou pom.yaml, il déclare ne pas trouver le projet.

    Je lis sur Internet qu'il faut trouver un plugin ou un Maven polyglot chez Sonatype. Mais il n'y a pas de lien de download sur http://polyglot.sonatype.org/, et il semblerait que ce soit pas encore fait, pas encore prêt et de toutes façons, si ça l'était, ce serait pour une autre version de Maven que la 3.0.1 le jour où ça sortira.

    C'est encore un n-ième bricolo, la prise en charge de YAML, avec effet d'annonce? Genre: cinquante blogs en parlent sans l'avoir expérimenté réellement, ou bien est-il possible effectivement de le faire fonctionner rapidement, simplement sans en passer par un XML initial genre épitaphe à cent lignes et trente legacy à mettre au point pendant quinze jours?

    Je fais un cm2 de provoc ici, mais il n'empêche que Maven 3, c'est d'abord un truc pas documenté. La release sans doc, c'est un grand classique, mais qui ne donne pas confiance. Pourtant, c'est une release. Mais à utiliser seulement dans un an, quand on saura comment ça fonctionne?

    Je dois l'essayer un peu avant. Moyennant quoi, je n'ai pas d'autres issues que de passer par un forum de discussion pour m'en sortir.


    Etes-vous parvenu à faire concrètement fonctionner yaml avec Maven 3?
    Je ne cherche pas de script yaml d'exemple, mais plutôt les installations précises à faire pour qu'il soit vraiment pris en compte (à partir, d'où. Faire quoi).

    Je ne trouve aucun exemple de cela nulle-part.

    En vous remerciant,

    Grunt.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Ta remarque sur l’utilisation des versions de type alpha, beta, … au sein des plugins Maven 2 est un point très important et souvent peu connu des utilisateurs Maven.
    Et comme tout le traitement de build (génération de code, compilation, …) est délégué à des plugins, on peut effectivement émettre les plus grands doutes de la stabilité d’un processus d’intégration avec Maven.

    Concernant ta remarque sur la très grande verbosité XML des descripteurs Maven, je serais plus nuancé. Ce qu’on peut reprocher à Maven, c’est de ne pas utiliser par exemple a des attributs comme pour une dépendance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <dependency groupId=""  artifactId="" version="" />
    au lieu d’une hiérarchie de balise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
     <groupId>...</groupId>
     <artifactId>...</artifactId>
     <version>...</version>
    <dependency>
    Et ainsi de suite…


    Mais en fait la verbosité de XML dans les descripteurs Maven est surtout due à des problèmes d’architecture et à un pattern ‘Convention over Configuration’ qui très mal exploité.
    Maven fournit un modèle fini et statique qu’on ne peut pas étendre simplement. Il fournit à mon sens un mauvais niveau de granularité de configuration.

    L’utilisation d’un DSL en YAML, Groovy ou … va t’apporter une légère simplification d’écrire mais pas beaucoup plus.
    Et effectivement, cette fonctionnalité sera apportée par le projet Poylyglot Maven. Mais celui-ci qui n’est pas disponible à ce jour dans la version 3.0.1 de Maven.
    Il va te falloir attendre la version 3.1.
    Ensuite, Maven va surement introduire des macros ou pseudo-macros pour rajouter des points d’extensibilité dans tes descripteurs.

    Pour conclure, je dirais : faites attention à la propagande faite sur certaines technologies dont Maven. Un reproche qu’on peut faire souvent à Maven c’est sa trop grande communication au détriment des ces fonctionnalités réelles.
    Maven peut être un très bon outil mais dans un contexte bien précis et en suivi des bonnes pratiques d’utilisations.
    Maven peut adresser 80% des cas d’utilisation des applications Java/JEE conventionnées. Dans tous les autres cas, j’encourage vraiment à se pencher sur les autres outils de build. En effet, rien que le monde Java il existe des dizaines d’outils de build offrant une alternative pertinente et crédible à Maven.

    Pour finir, je t’invite à regarder le système de build Gradle qui tente d’offrir tous les avantages de Maven sans ses inconvénients avec le bon niveau d'abstraction. Il est déjà déployé dans de nombreux grand compte et de nombreux grands acteurs de la communauté Java (Spring, Hibernate, Groovy, …) passent sous Gradle.

Discussions similaires

  1. [Dojo] Où trouver le fichier countries.json (utilisé dans beaucoup d'exemples de code)
    Par arsene555 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 08/10/2011, 12h01
  2. Réponses: 1
    Dernier message: 17/01/2008, 12h57
  3. Réponses: 1
    Dernier message: 09/02/2007, 23h51
  4. exemple de script avec autoloader
    Par djibril dans le forum Modules
    Réponses: 4
    Dernier message: 24/11/2005, 18h53
  5. Réponses: 4
    Dernier message: 18/04/2005, 10h06

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