La dernière fois que j'ai utilisé Android Studio, il a généré des .gradle
fichiers avec des mavencentral()
référentiels buildscript alors qu'il y en a maintenant jcenter()
.
Quelqu'un pourrait-il expliquer les problèmes liés à cela. Y a-t-il d'autres repos? Quand devrions-nous les changer? Quel impact ont-ils sur les projets, modules, bibliothèques? D'autres éléments essentiels pour les développeurs Android?
Qui est responsable du maintien de ces repos?
Réponses:
Chez Bintray, je viens de publier un article de blog très détaillé décrivant les raisons pour lesquelles Google a effectué ce changement. Voici les points les plus importants:
jcenter()
est un sur-ensemble demavenCentral()
, qui comprend de nombreux référentiels et artefacts supplémentaires.En ce qui concerne les améliorations de performances, quelques défenseurs des développeurs Android ont rencontré / remarqué le problème de l'indexation énorme avec maven central.
Pour reprendre les mots de Tor Norbye :
En outre, vous pourriez trouver cette très courte discussion (1Q et 1A) sur Hacker News intéressante.
Je suis avec JFrog , l'entreprise derrièrebintray et artificiel, voir mon profil pour les détails et les liens.
la source
Je me posais la même question, et je n'ai pas de réponse définitive, mais j'ai pensé qu'il valait peut-être la peine de partager ce que j'avais (peu) appris. J'ai trouvé la mention du passage de Maven Central à JCenter dans un problème sur Google Code , mais je n'ai pas repéré de détails sur le moment exact - je n'ai pas trouvé de mention dans la liste des modifications récentes pour Android Studio.
D'après la lecture de JCenter, c'est le référentiel derrière Bintray, de la société JFrog (que j'ai rencontré auparavant, et je suppose que c'est de là que vient le `` J ''). Selon le blog Bintray, Bintray est un surensemble de Maven Central , donc si c'est vrai, il ne devrait pas y avoir de problèmes avec les dépendances manquantes, mais je suppose que cela dépendra exactement de ce que vous utilisez dans vos projets - vous pouvez toujours directement vérifiez les dépôts car les deux ont de beaux sites Web facilement consultables. Donc, pour qui gère ces référentiels, pour autant que je sache, il appartient aux producteurs des dépendances d'ajouter leurs dépendances à chaque référentiel, et au propriétaire du référentiel de simplement maintenir le service.
En ce qui concerne le moment où passer, il est difficile de s'entraîner. AOSP utilise toujours Maven Central je pense (en regardant dans les modèles pour une nouvelle application Android), mais ce modèle utilise également toujours une très ancienne version de Gradle (0.4). Il y a quelques problèmes avec d'autres ayant des problèmes avec les dépendances de jcenter, mais pas vraiment beaucoup signalés, et il est possible que Google passe à nouveau à un autre référentiel avant de publier AS final. Si Maven Central fonctionne toujours bien pour vous pour l'instant, vous pouvez retarder la commutation jusque-là, surtout si vous créez de grandes solutions commerciales.
la source
Quelle que soit la valeur par défaut dans le fichier build.gradle - dans un effort de développement en équipe, vous devez vraiment utiliser un gestionnaire de référentiel comme Sonatype Nexus ou JFrog Artifactory et ne pas référencer directement ces référentiels en amont.
Cela vous permettra d'économiser beaucoup de bande passante, de combiner les deux et de nombreux autres référentiels et de tout gérer dans votre propre réseau.
En termes de Maven Central vs JCenter. JCenter est l'effort de JFrog pour embrasser, étendre (et exterminer?) Maven Central. Maven Central est le référentiel par défaut dans Maven, SBT et autres, tandis que Gradle est passé à JCenter. Cela n'est pas surprenant étant donné que JFrog et Gradleware travaillent ensemble en tant qu'entreprises. Étant donné que le SDK Android utilise Gradle comme système de construction maintenant, le passage à JCenter était une prochaine étape logique.
JCenter lui-même est un mince placage sur le dessus de Maven Central. Il le proxy (avec plus ou moins de succès) et ajoute des composants supplémentaires. Les deux sont hébergés sur des réseaux CDN et hautement performants. Maven Central lui-même est la cible de tous les projets Eclipse, Apache et la plupart des autres projets open source et sans lui, JCenter serait pour la plupart vide.
L'utilisation de l'un d'eux fonctionnera bien, mais je suggère d'aller directement à la source où vous pouvez et en plus de prendre le contrôle en utilisant un gestionnaire de référentiel. Nexus Open Source, par exemple, est gratuit et prend en charge les référentiels Maven utilisés par Maven, Gradle, SBT, Ivy et d'autres, ainsi que NuGet, NPM et RubyGems.
Avertissement: je suis l'auteur de Repository Management with Nexus et Nexus trainer for Sonatype, le sponsor du Central Repository gratuit, le chef de projet du plug-in Android Maven et j'ai poussé certaines bibliothèques Android vers Central en reconstruisant à partir d'AOSP.
la source
http://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
cet article peut répondre à votre question.
la source