99 votes

Pourquoi Maven ont une telle mauvaise réputation ?

Il y a beaucoup de discussions sur internet sur la façon de Maven est mauvais. J'ai été l'utilisation de certaines fonctionnalités de Maven depuis quelques années maintenant, et l'avantage le plus important à mon avis est la gestion de la dépendance.

Maven documentation est moins qu'adéquate, mais en général, quand j'en ai besoin pour accomplir quelque chose que je figure une fois et puis il travaille (par exemple, lorsque j'ai mis en place la signature de l'pots). Je ne pense pas que Maven est grande, mais il n'résoudre certains problèmes que sans elle, il serait une véritable douleur.

Alors, pourquoi ne Maven ont une mauvaise réputation et que des problèmes avec Maven puis-je attendre de l'avenir? Peut-être il ya beaucoup de meilleures alternatives que je ne le sais pas? (Par exemple, je n'ai jamais regardé le Lierre dans le détail.)

REMARQUE: Ce n'est pas une tentative de provoquer un argument. C'est une tentative pour effacer de la RUMEUR.

140voto

Kevin Peterson Points 4456

J'ai regardé dans maven y a environ six mois. Nous avons commencé un nouveau projet, et n'avait pas du tout l'héritage à l'appui. Qui a dit:

  • Maven est un tout-ou-rien. Ou au moins aussi loin que je pouvais dire à partir de la documentation. Vous ne pouvez pas facilement utiliser maven comme une baisse-dans le remplacement pour les fourmis, et d'adopter progressivement des fonctionnalités plus avancées.
  • Selon la documentation, Maven est transcendantale bonheur qui rend tous vos rêves les plus fous deviennent réalité. Vous avez juste à méditer sur le manuel de 10 ans avant d'atteindre l'illumination.
  • Maven rend votre processus de construction dépend de votre connexion réseau.
  • Maven est inutile de messages d'erreur. Comparer la fourmi "Target x n'existe pas dans le projet y" mvn est non Valide "tâche " run": vous devez spécifier un valide phase du cycle de vie, ou d'un but dans le plugin format:objectif ou pluginGroupId:pluginArtifactId:pluginVersion:objectif" Heureusement, il me propose d'exécuter mvn-e pour plus d'informations, ce qui signifie qu'il va imprimer le même message, puis une trace de la pile pour un BuildFailureException.

Une grande partie de mon aversion pour maven peut être expliqué par l'extrait suivant de Mieux Construit avec Maven:

Quand quelqu'un veut savoir ce que Maven est, ils seront généralement demander "qu'est-Ce exactement Maven?", et ils s'attendent à une courte, une morsure de réponse. "Eh bien, c'est un outil ou un script cadre" Maven est un plus de trois ennuyeux, ternes mots. C'est une combinaison d'idées, de normes et de logiciel, et il est impossible de distiller la définition de Maven simplement digérés phrases. Les idées révolutionnaires sont souvent difficile à transmettre avec des mots.

Ma suggestion: si vous ne pouvez pas transmettre les idées avec des mots, vous ne devez pas tenter d'écrire un livre sur le sujet, parce que je ne vais pas par télépathie absorber les idées.

109voto

izb Points 12736
  • Il impose une structure rigide sur vous depuis le début.
  • Il est basé sur XML, il est donc aussi difficile à lire que FOURMI a été.
  • Son rapport d'erreur est obscur et vous laisse brin quand les choses vont mal.
  • La documentation est pauvre.
  • Il rend difficile les choses faciles et simples des choses dures.
  • Il prend trop de temps pour maintenir une Maven build de l'environnement, qui va à l'encontre de la point d'avoir un chant système de construction.
  • Il faut beaucoup de temps pour comprendre que vous avez trouvé un bug dans maven et n'est pas configuré quelque chose de mal. Et les bugs existent, et dans des endroits surprenants.
  • Il promet beaucoup de choses, mais trahit vous souhaitez une belle et séduisante, mais émotionnellement froid et manipulateur amant.

96voto

Dominic Mitchell Points 5719

J'ai certainement râlé et gémit sur maven dans le passé. Mais maintenant, je ne serais pas sans elle. J'ai l'impression que les avantages l'emportent de loin sur tous les problèmes. Principalement:

  • Normalisée des projets de la structure.
    • Étant donné un nouveau développeur de rejoindre un projet:
      • Quand vous dites que c'est un projet Maven, puis développeur sait que le projet d'agencement et de la façon de construire et de package du projet
      • Quand vous dites que c'est une Fourmi projet, les développeurs devront attendre pour vous pour vous expliquer plus ou va passer par la build.xml pour comprendre les choses.
    • Bien sûr, il est toujours possible d'imposer à l'échelle de l'entreprise standard avec Ant, mais je pense plus souvent que pas, vous serez re-inventer la proverbiale de la roue.
  • Gestion de la dépendance.
    • Pas seulement avec les bibliothèques externes mais aussi internes des bibliothèques/modules. Assurez-vous d'utiliser un repository Maven serveur proxy comme Nexus ou Artifactory.
    • Il est possible de faire certaines de ces avec Ivy. En fait, si vous avez besoin d'une gestion de la dépendance, vous êtes probablement mieux d'utiliser le Lierre.
  • En particulier au sein d'un projet. J'ai trouvé ça assez utile pour sortir peu de sous-projets, et maven gère ce bien. Il est beaucoup plus difficile avec ant.
  • Normalisé artefact de gestion (en particulier en conjonction avec la nexus ou artifactory)
  • La release-plugin est merveilleux.
  • L'Eclipse Et NetBeans intégration est assez bonne.
  • L'intégration avec d'hudson est superbe. En particulier les graphiques de tendance, pour des choses comme findbugs.
  • C'est un point mineur, mais le fait que maven incorpore des détails comme le numéro de version à l'intérieur du pot ou de la guerre (et pas seulement dans le nom de fichier par défaut est énormément utile.

Les inconvénients pour moi, ce sont principalement:

  • La ligne de commande est tout à fait inutile. Cela me mettait hors de beaucoup pour commencer.
  • Le format XML est très détaillé. Je peux voir pourquoi il a été fait de cette façon, mais c'est toujours une douleur à lire.
    • Cela dit, il a un XSD pour faciliter le montage dans un IDE.
  • Il est difficile d'obtenir votre tête autour de lui dans la le début. Des choses comme le cycle de vie, par exemple.

Je crois vraiment que ça vaut le coup de passer un peu de temps à apprendre à connaître maven.

80voto

KarlP Points 3246

Mon expérience pratique de deux grands projets que nous avons passé de 1000 à 1500 heures pour chaque projet maven problèmes connexes, à l'exclusion de 500 heures de l'effort de passer de maven 1 à maven 2.

Depuis, je dois dire que j'ai vraiment la haine maven. Je suis frustré quand on pense à ce sujet.

L'intégration Eclipse est terrible. (Nous avons eu de troubles sans fin avec la génération de code par exemple, où l'éclipse est sorti de synchronisation avec le code généré par, et a nécessité une reconstruction complète, assez souvent. Le blâme est à la fois maven et eclipse, mais eclipse est plus utile que maven et dire emacs, donc eclipse séjours et maven.)

Nous avons eu beaucoup de dépendances, et que nous avons découvert, les erreurs de syntaxe sont effectivement commis au public maven référentiels assez souvent, ce qui peut ruiner les heures de votre temps précieux. Chaque semaine. La solution de contournement est d'avoir un proxy ou localement régis référentiel et que a fallu un certain temps pour obtenir le droit, trop.

Les fervents de la structure de projet n'est pas vraiment adapté pour le développement avec Eclipse, et le temps de génération dans eclipse augmente.

Un effet de la génération de code et de problème de synchronisation, nous avons dû reconstruire à partir de scrach, bien souvent, à la réduction de votre code/compilation/test du cycle sans fin de la compilation/websurf/sommeil/die/code-cycle, l'envoi de revivre les années 90 et 40 minutes de temps de compilation.

La seule excuse pour maven est la résolution de dépendances, mais je voudrais le faire de temps en temps, pas à chaque génération.

Pour résumer, maven est aussi loin de la BAISER comme il peut l'être. Et aussi, advocaters ont tendance à être le type de personnes qui célèbre supplémentaire sur leur anniversaire, lorsque leur âge est un premier numéro . Hésitez pas à me voter :-)

46voto

Cuga Points 6286

Maven est grande. La raison de sa réputation a à voir avec la courbe d’apprentissage abrupte, à mon avis. (dont je suis finalement proche de faire plus)

La documentation est un peu rude à parcourir, tout simplement parce qu’il se sent comme il y a beaucoup de texte et de nouvelles choses à comprendre avant qu’il commence à s’y retrouver. Je dis temps est tout ce qu’il faut pour Maven devenir plus largement couverte d’éloges.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X