В прошлый раз, когда я использовал Android Studio, он генерировал .gradle
файлы с mavencentral()
репозиториями buildscript, тогда как сейчас есть jcenter()
.
Может ли кто-нибудь объяснить проблемы, связанные с этим. Есть ли другие репо? Когда мы должны их поменять? Какое влияние они оказывают на проекты, модули, библиотеки? Какие-нибудь другие предметы для разработчиков Android?
Кто несет ответственность за поддержание этих репо?
Ответы:
В Bintray я только что сделал очень подробный пост в блоге с описанием причин, по которым Google сделал это изменение. Вот самые важные моменты:
jcenter()
это расширенный наборmavenCentral()
, который включает в себя множество дополнительных репозиториев и артефактов.Что касается повышения производительности, пара защитников Android-разработчиков столкнулись / заметили проблему огромной индексации с помощью Maven Central.
По словам Тора Норби :
Кроме того, вы можете найти это очень короткое (1Q и 1A) обсуждение в Hacker News интересным.
Я с JFrog , компанией, стоящей заbintray и Artifactoryсм. мой профиль для деталей и ссылок.
источник
Мне было интересно то же самое, и у меня нет однозначного ответа, но я подумал, что, возможно, стоит поделиться тем, что (мало) я узнал. Я обнаружил упоминание о переходе от Maven Central к JCenter в рамках одной проблемы в Google Code , но не нашел подробностей о том, когда именно это произошло, - не смог найти упоминания в списке последних изменений для Android Studio.
Из прочтения на JCenter, это репозиторий Bintray от компании JFrog (с кем я сталкивался раньше, и, я думаю, именно отсюда и появился «J»). Согласно блогу Bintray, Bintray является надмножеством Maven Central , поэтому, если это правда, не должно быть проблем с отсутствующими зависимостями, но я думаю, что это будет зависеть от того, что именно вы используете в своих проектах - вы всегда можете напрямую проверьте репо, поскольку у обоих есть хорошие легко доступные для поиска веб-сайты. Таким образом, для тех, кто поддерживает эти репозитории, насколько мне известно, сами производители зависимостей добавляют свои зависимости в каждое репо, а владелец репо - просто для обслуживания сервиса.
С точки зрения того, когда переключаться, трудно решить. Я думаю, что AOSP все еще использует Maven Central (из поиска шаблонов для нового приложения для Android), но тогда этот шаблон также все еще использует очень старую версию Gradle (0.4). Есть пара проблем, связанных с тем, что у других есть проблемы с зависимостями от jcenter, но о которых не так много сообщалось, и вполне возможно, что Google снова переключится на какое-то другое хранилище перед выпуском AS final. Если Maven Central все еще работает нормально для вас, вы можете отложить переключение до тех пор, особенно если вы создаете крупные коммерческие решения.
источник
Независимо от того, какое значение по умолчанию находится в файле build.gradle - при групповой разработке вам действительно следует использовать менеджер репозитория, такой как Sonatype Nexus или JFrog Artifactory, и не ссылаться на эти вышестоящие репозитории напрямую.
Это позволит вам сэкономить большую пропускную способность, объединить оба и многие другие репозитории и управлять всем этим в вашей собственной сети.
С точки зрения Maven Central против JCenter. JCenter - это попытка JFrog охватить, расширить (и уничтожить?) Maven Central. Maven Central является хранилищем по умолчанию в Maven, SBT и других, в то время как Gradle переключился на JCenter. Это неудивительно, если учесть, что JFrog и Gradleware работают вместе как компании. Поскольку Android SDK использует Gradle в качестве системы сборки, переход к JCenter стал следующим шагом.
JCenter - это тонкий шпон на вершине Maven Central. Он проксирует его (более или менее успешно) и добавляет дополнительные компоненты. Оба размещены в сетях CDN и отличаются высокой производительностью. Сам Maven Central является целью для всех Eclipse, Apache и большинства других проектов с открытым исходным кодом, и без него JCenter был бы в основном пустым.
Использование любого из них будет работать нормально, но я бы посоветовал перейти прямо к источнику, где вы можете, и вдобавок к этому взять управление на себя с помощью менеджера хранилища. Например, Nexus Open Source является бесплатным и поддерживает репозитории Maven, используемые Maven, Gradle, SBT, Ivy и другими, а также поддержку NuGet, NPM и RubyGems.
Отказ от ответственности: я являюсь автором управления репозиторием с Nexus и инструктором по Nexus для Sonatype, спонсора бесплатного Центрального репозитория, лидера проекта плагина Android Maven, и переместил некоторые библиотеки Android в Central путем восстановления из AOSP.
источник
http://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
эта статья может ответить на ваш вопрос.
источник