Dois-je m'inquiéter de jCenter qui est obsolète?
Pourquoi devrais-je migrer mes bibliothèques de JCenter vers d'autres référentiels Maven?
Puis-je continuer à utiliser jCenter ()
dans mon script Gradle Build?
8 Réponses :
JCenter ()
ne fonctionnera plus. Selon cet article de blog gradle :
gradle 7.0 va déprécier l'utilisation de jCenter ()
pour résoudre les dépendances.
Vous pourrez toujours utiliser jCenter comme référentiel, mais Gradle émettra un avertissement.
La méthode jCenter ()
sera supprimée dans la prochaine version majeure.
Gradle n'a pas de lien inhérent à jCenter ou Maven Central , vous pouvez donc toujours passer à tout autre référentiel de votre choix.
Et selon développeurs Android :
jfrog, la société qui maintient le référentiel artefact JCenter utilisé
par de nombreux projets Android, ont récemment annoncé la dépréciation et
La retraite à venir de jCenter .
Selon l'annonce , JCenter permettra les téléchargements d'artefacts existants jusqu'au 1er février 2022.
Les développeurs qui publient des artefacts sur jCenter devraient commencer à migrer des packages à un nouvel hôte, comme Maven Central . / / / / p>
Alors, assurez-vous simplement que les auteurs fournissent leur bibliothèque dans d'autres référentiels, puis mettent à jour vos scripts de construction pour permettre le téléchargement à partir de ces référentiels.
Par exemple, dans Gradle Use mavencentral ()
pour permettre d'obtenir des dépendances du référentiel central Maven.
Mauvais. "Le 1er mai 2021 Les services de bintray ne seront plus disponibles. GOCENTER, et les services ChartCenter ne seront plus disponibles pour les clients non artificiels. (Conopenter et JCenter ne sont pas affectés)." et "MISE À JOUR 27/04/2021: Nous avons écouté la communauté et garderons JCenter comme un référentiel en lecture seule indéfiniment. Nos clients et la communauté peuvent continuer à compter sur JCenter comme un miroir fiable pour les packages Java."
En fait, les développeurs doivent porter leurs bibliothèques sur Maven ou Google. Dans ce cas, JCenter () peut être retiré de Gradle.
Un problème se produit lorsque les anciennes bibliothèques ne sont plus maintenues ou que les développeurs sont retirés.
Il n'y a que deux possibilités:
a) Recherche, par exemple dans maven pour une bibliothèque similaire.
b) Téléchargez le code source correspondant à partir de GitHub et créez votre propre bibliothèque locale à partir de celui-ci.
à partir de 2022-02-01 JCenter est définitivement en baisse.
Avez-vous des conseils sur l'option B? Je programme pour un scanner de code-barres qui exécute Android et je suis déjà sûr que les développeurs du fabricant seront en retard à cette fête.
Une autre réponse contredit la déclaration dans le dernier paragraphe.
Remplacer
mavenCentral()
par ceci:
jcenter()
Notez que la bibliothèque doit être disponible sur le référentiel Maven Central. Sinon, remplacer le simple jCenter ()
par mavencentral ()
ne fera aucun bien.
@Mahozad true, dans certains cas, nous devrons aller sur le site du développeur et copier la ligne maven qui ressemble généralement à ceci: maven {url 'https://my.library-url.com/'} < / code>
La dernière mise à jour comme mentionné ici a > Dans le site Web de Jfrog est le suivant:
Mise à jour du 27/04/2021: Nous avons écouté la communauté et nous garderons JCenter en lecture seule indéfiniment. Nos clients et la communauté peuvent continuer à compter sur JCenter comme un miroir fiable pour les packages Java.
JCenter lui-même peut continuer à fonctionner, mais il sera obsolète et supprimé de divers outils, comme Gradle. Donc, efficacement, la plupart des gens doivent cesser de l'utiliser.
@Stan comment s'arrêter? J'utilise un plugin Shadow pour Gradle, et ce n'est que sur JCenter
> La méthode jCenter () sera supprimée dans la prochaine version majeure qui est toujours applicable, non? Comment peut-il être remplacé?
remplacer jCenter ()
par:
gradlePluginPortal() mavenCentral()
Le portail du plugin Gradle reflète implicitement JCenter actuellement. Si vous utilisez le portail de plugin (via gradlepluginportal () ou les plugins URL.gradle.org/m2) pour résoudre les dépendances de votre application, vous pouvez compter sur JCenter. Vous devez éviter d'utiliser le portail du plugin comme référentiel, à l'exception des projets de plugin gradle. blog.gradle.org/jcenter-shutdown
@togikan Il s'agit de projets de plugin absolument gradle, car c'est par défaut pour les projets Android. Ou peut-être pas si le propriétaire de cette question utilisait autre chose.
"Le portail des plugins Gradle reflète implicitement JCenter actuellement" y a-t-il des informations combien de temps ils feront certainement cela?
vous devez modifier avec De plus, vous devez définir une ou plusieurs URL du référentiel: repositories {
mavenCentral()
maven {
url = "https://repo1.maven.org/maven2/"
}
maven {
url "https://repo.spring.io/release"
}
maven {
url "https://repository.jboss.org/maven2"
}
maven {
url 'https://repo.jenkins-ci.org/public/'
}
}
Merci. Après de nombreuses autres réponses, celle-ci a fonctionné - probablement parce qu'elle a les miroirs corrects qui ont les anciennes versions des dépendances que mon projet utilise toujours. Je veux seulement que cela fonctionne. Je ne peux pas tout mettre à niveau ...
Mavencentral reflète-t-il un JCenter entier?
@reducingActivity: oui ça devrait être
Dans mon cas, j'ai suivi ces étapes pour le faire:
J'ai tout essayé mais rien n'a fonctionné, puis ajouter un nouveau référentiel maven à la main et maintenant ça marche.
repositories { // ... maven { url 'https://repo.gradle.org/gradle/libs-releases/' } }
Connexes: stackoverflow.com/q/66400264