Buck vs Gradle, pro et les inconvénients pour Android de construire des systèmes
Je suis actuellement en utilisant ant pour construire des projets Android, mais il n'a tout simplement pas le couper pour les grands projets et de maintien de différents livrables est en train de devenir une douleur.
Deux solutions, je suis à la recherche sont Facebook de Buck (http://facebook.github.io/buck/) et Gradle que Google est la sauvegarde avec Android studio (http://tools.android.com/tech-docs/new-build-system/user-guide).
En plus de les essayer et de lire sur leur couverture, je voudrais vous demander fine Stackoverflow personnes pour vos recommandations. De préférence, si vous avez utilisé l'outil soit pour un temps, avec des points de bonus pour Buck puisqu'il n'a pas beaucoup de couverture.
Points importants sont
- construire la vitesse, spécialement pour les dev s'appuie
- prestations multiples générateurs de produits à partir de la même base de code
- la facilité d'utilisation
Je suis ouvert à d'autres alternatives. Que suggérez-vous et pourquoi?
- j'aime gradle (je ne sais buck). gradle est un peu lent, mais vous pouvez accélérer les choses avec le gradle démon (gradle.org/docs/current/userguide/gradle_daemon.html)
Vous devez vous connecter pour publier un commentaire.
Que j'ai mis en avant et centre dans la Buck documentation: "Buck est un système de construction pour Android qui encourage la création de petites, de modules réutilisables composé de code et les ressources."
De par leur conception, Buck vous encourage à créer de petits modules de sorte que vous puissiez facilement composer une nouvelle application de votre bâtiment existant blocs. Cela signifie que le maintien de prestations multiples générateurs de produits est simple: il élimine passe-partout, sans vous obliger à organiser votre référentiel dans une structure prédéfinie. Vous pouvez également créer des ad-hoc construire des mesures pour répondre à vos besoins avec Buck via des macros et genrules. (Plus formalisé système d'extension est dans les travaux.)
Nous attachons aussi beaucoup sur la vitesse, en particulier la vitesse de des versions. Parce que Buck a une forte notion de dépendances, on peut souvent éviter la reconstruction intermédiaire d'artefacts. D'autres systèmes de construction aussi essayer de le faire (comme Ant), mais fréquemment de sacrifier l'exactitude, comme un résultat. Nous n'avons pas.
Nous reconnaissons que l'IDE le soutien est important. Certainement Google collaboration avec Gradle leur donne une jambe de là-haut. Cependant, le Mâle a une commande pour générer un IntelliJ projet à partir du graphe de dépendance définis dans Buck fichiers de build, et nous avons innové sur notre propre Ide, plug-in, donc c'est quelque chose que nous aussi, nous préoccupe beaucoup.
Enfin, gardez à l'esprit que Buck est utilisé pour construire des Facebook, Facebook Messenger, et de Instagram pour Android. Buck ne va pas plus loin. En outre, le code pour les trois applications (et réduit les versions des applications, même pour des cycles de développement plus courts) vit dans un dépôt Git à Facebook, de sorte que ceux d'entre nous qui travaillent sur Buck en interne sont sensibles aux besoins des grandes bases de codes qui prennent en charge plusieurs livrables.
À Long terme, le nouveau système de build Gradle sera la norme, et qu'il est très bon.
Cependant, il semble qu'il n'est pas tout à fait prêt pour une utilisation non-trival projets encore. Par exemple, on dirait qu'il ne prend pas en charge apklib dépendances encore.
C'est compréhensible, et reflète dans le fait que la version actuelle est de 0,3
Je suis impatient de le voir évoluer.
Pour un projet qui doit être mise en place aujourd'hui, je voudrais utiliser Maven. En fait, je suis dans le processus de déplacement d'un client de construire à partir d'Eclipse seulement à Maven dès maintenant, afin qu'ils puissent avoir un modèle de processus de génération, de la bonne gestion de la dépendance, et l'IC.
La nouvelle build Gradle ressemble, il sera plus souple, mais pour l'instant, Maven gère apklibs. Depuis Gradle pouvez utiliser les dépendances Maven, je m'attends à ce que nous allons être capables de se déplacer de Maven pour Gradle facilement dans l'avenir.
Je ne sais rien à propos de l'argent. Cependant, ce qui en soi est un drapeau rouge. J'avais hésité à utiliser un système de construction que peu de gens savent rien à ce sujet. Cela ne veut pas dire qu'il n'est pas bon - il est peut-être grande. Mais à l'aide de maintenant, c'est probablement un pari.
Ici est un plugin gradle OkBuck qui peut vous permettre de commencer à utiliser BUCK base sur votre Android Studio + système de build Gradle avec seulement 10 lignes de configuration. Check it out.
OkBuck peut vous permettre de construire votre projet à la fois avec gradle et buck, avec tous les avantages de gradle et de l'argent.
Je voudrais ajouter les avantages suivants de Buck: