2008-09-16 8 views
8

Est-il vraiment avantageux de passer à Rake from ant?Vous voulez migrer vers Rake?

Quelqu'un a migré de la fourmi et a trouvé quelque chose de monumental?

Pour votre information: l'environnement actuel est Ant pour J2ME builds

Répondre

9

Je dirais que oui, mais j'ai une perspective différente de celle d'un gars de l'environnement Java, parce que je suis un gars de l'environnement .NET. J'ai écrit et maintenu un script de construction non trivial (clean, generate-assembly-info, build, test, couverture, analyse, paquetage) dans msbuild (effort NAnt basé sur XML de MS) et c'était très douloureux:

  • XML n'est pas convivial; c'est très bruyant
  • Personne d'autre dans l'équipe n'était intéressé à l'apprendre au point d'effectuer plus, et des automatismes plus utiles; Facteur de bus si élevé (si je suis frappé par un bus, ils sont coincés avec lui)
  • Il ne se prêtait pas à refactoring ou d'amélioration - c'était l'une de ces choses «touch-at-your-péril» , tu sais?
  • Il avait besoin des tâches C# personnalisée à écrire pour exécuter les différents outils de la construction nécessaires (bien que pour être honnête, ces derniers sont souvent écrits par les vendeurs)

Dans environ la valeur de une semaine de travail de mon temps (J'ai appris assez de ruby ​​+ rake pour remplacer le tout avec un script plus court (en termes de LOC) avec un peu plus de fonctionnalités, et plus de compréhensibilité (j'espère, de toute façon, havre de paix! Je l'ai déjà passé en revue).

Il bénéficie de: - C'est une nouvelle langue, mais un vrai langage. Mes coéquipiers aiment apprendre de nouvelles langues, et cela, bien que ce soit une excuse, est toujours une excuse ;-) Cela pourrait atténuer le facteur de bus si j'ai raison. - C'est un petit saut (je crois) d'ici à capistrano, l'outil de déploiement automatisé/distant/distribué du monde RoR. En dépit d'être un magasin MS-pile, nous allons l'utiliser en combinaison avec IIS7 ayant finalement un outil de configuration CLI.

Alors, oui. Votre kilométrage peut varier, mais cela en valait la peine pour moi.

+1

Depuis lors, j'ai créé http://github.com/petemounce/rake-dotnet pour emballer ce que j'ai appris et Partagez-le. –

1

Vous pouvez vérifier buildr aussi bien. C'est un outil de construction de niveau supérieur construit sur rake. À mon humble avis, il prend beaucoup de bonnes fonctionnalités de Maven, et jette les méchants. Je ne l'ai pas utilisé dans quelque chose de grand moi-même, mais je connais des gens qui ont et sont assez heureux avec cela.

+0

Il est maintenant diplômé (pas dans l'incubateur plus): http://buildr.apache.org – inger

0

Un autre outil que vous pourriez vouloir vérifier est Gant si la fourmi ne répond pas à vos besoins. Il ajoute un support de script complet à la fourmi mais vous permet de réutiliser vos tâches de fourmi au besoin. Cela dépend vraiment de ce que vous n'aimez pas à propos de la fourmi.

6

Rake est grand si vous voulez:

  • L'accès à un vrai langage de programmation; conditionals et les boucles sont tous morts-simple, par rapport à Ant (où ils sont presque-impossible)
  • format de fichier qui est facile à lire et peut être la syntaxe vérifiée
  • Plus attribution intuitive/prévisible des valeurs aux variables

Rake est mauvais pour vous:

  • vous devez fournir une base de beaucoup des tâches (comme la course javac, la création de fichiers jar, etc.) vous-même. Des projets comme Raven peuvent aider, mais il semble axé sur les dépendances de téléchargement automatique et pas tellement automatisé un processus de build/déploiement. De plus, la documentation manque un peu.
  • La plupart des outils java pouvant être automatisés sont des tâches Ant, qui ne peuvent pas être exécutées facilement à partir de Rake; démarrer la JVM peut être ennuyeux au moment de la construction
Questions connexes