JCenter-Veraltung; Auswirkungen auf Gradle und Android

Lesezeit: 4 Minuten

Benutzer-Avatar
Mahozad

Muss ich mir Sorgen machen JCenter veraltet?

Warum sollte ich meine Bibliotheken von migrieren? JCenter zu anderen Maven-Repositories?

Kann ich weiter verwenden jcenter() in meinem Gradle-Build-Skript?

  • Siehe auch: stackoverflow.com/q/66400264

    – E_net4 – Krabbe mit Hüten

    16. März 2021 um 11:22 Uhr

Benutzer-Avatar
Umar Ata

Ersetzen

jcenter()

mit diesem:

mavenCentral()

  • Beachten Sie, dass die Bibliothek im Maven Central-Repository verfügbar sein sollte. Ansonsten einfach austauschen jcenter() mit mavenCentral() wird nichts nützen.

    – Mahozad

    11. Mai 2021 um 11:33 Uhr


  • @Mahozad Stimmt, in einigen Fällen müssen wir auf die Website des Entwicklers gehen und die Maven-Zeile kopieren, die normalerweise so aussieht: maven {url 'https://my.library-url.com/'}

    – cmak

    20. Januar um 17:44 Uhr

Benutzer-Avatar
Mahozad

Bitte beachten Sie die neue Antwort.

Zusammenfassung: Nach dem 1. Februar 2022 jcenter() wird nicht mehr funktionieren.

Entsprechend diesen Gradle-Blogbeitrag:

Klasse 7.0 wird die Verwendung von ablehnen jcenter() Abhängigkeiten aufzulösen.
Sie können es weiterhin verwenden JCenter als Repository, aber Gradle gibt eine Warnung aus.
Das jcenter() -Methode wird in der nächsten Hauptversion entfernt.

Gradle hat keine inhärente Bindung zu JCenter oder Maven-Zentralesodass Sie jederzeit zu einem anderen Repository Ihrer Wahl wechseln können.

Und gem Android-Entwickler:

JFrog, das Unternehmen, das die JCenter Artifact-Repository, das von vielen Android-Projekten verwendet wird, hat kürzlich die Abschaffung und bevorstehende Stilllegung von angekündigt JCenter.
Entsprechend die Ankündigung, JCenter ermöglicht das Herunterladen vorhandener Artefakte bis zum 1. Februar 2022.

Entwickler, die Artefakte auf veröffentlichen JCenter sollte mit der Migration von Paketen auf einen neuen Host beginnen, z Maven-Zentrale.

Stellen Sie also einfach sicher, dass die Autoren ihre Bibliothek in anderen Repositories bereitstellen, und aktualisieren Sie dann Ihre Build-Skripte, um das Herunterladen aus diesen Repositories zu ermöglichen.
Zum Beispiel im Gradle-Einsatz mavenCentral() Funktion, um das Abrufen von Abhängigkeiten aus dem Maven Central-Repository zu ermöglichen.

  • Falsch. “Ab dem 1. Mai 2021 sind die Bintray-Dienste nicht mehr verfügbar. Die GoCenter- und ChartCenter-Dienste sind für Nicht-Artifactory-Clients nicht mehr verfügbar. (ConanCenter und JCenter sind nicht betroffen).” und „UPDATE 27.04.2021: Wir haben auf die Community gehört und werden JCenter auf unbestimmte Zeit als schreibgeschütztes Repository behalten. Unsere Kunden und die Community können sich weiterhin auf JCenter als zuverlässigen Spiegel für Java-Pakete verlassen.“

    – Der unglaubliche Jan

    19. Juli 2021 um 7:56 Uhr


Benutzer-Avatar
Perikles Karachristos

Das neuste Update wie erwähnt hier auf der Website von JFrog ist Folgendes:

UPDATE 27.4.2021: Wir haben auf die Community gehört und werden JCenter auf unbestimmte Zeit als schreibgeschütztes Repository behalten. Unsere Kunden und die Community können sich weiterhin auf JCenter als zuverlässigen Spiegel für Java-Pakete verlassen.

  • JCenter selbst funktioniert möglicherweise weiter, wird jedoch veraltet und aus verschiedenen Tools wie Gradle entfernt. So effektiv, dass die meisten Menschen aufhören müssen, es zu verwenden.

    – Stan

    17. Dezember 2021 um 13:54 Uhr

Benutzer-Avatar
nnhthuan

Ersetzen jcenter() durch:

gradlePluginPortal()
mavenCentral()

Du musst dich ändern

jcenter()

mit

mavenCentral()

außerdem müssen Sie eine oder mehrere Repository-URLs festlegen:

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/'
    }
}

  • Vielen Dank. Nach vielen anderen Antworten hat diese funktioniert – wahrscheinlich, weil sie die richtigen Spiegel hat, die die älteren Versionen von Abhängigkeiten haben, die mein Projekt noch verwendet. Ich möchte nur, dass es funktioniert. Ich kann nicht alles upgraden…

    – Mehmet Fatih Yıldız

    23. Februar um 0:54 Uhr

Benutzer-Avatar
Peter Mortensen

Eigentlich sollten Entwickler ihre Bibliotheken auf Maven oder Google portieren. In diesem Fall kann jCenter() aus Gradle entfernt werden.

Ein Problem tritt auf, wenn alte Bibliotheken nicht mehr gepflegt werden oder die Entwickler in Rente gehen.

Es gibt nur zwei Möglichkeiten:

a) suche zB in Maven für eine ähnliche Bibliothek.

b) Den entsprechenden Quellcode von GitHub herunterladen und daraus eine eigene lokale Bibliothek erstellen.

Ab dem 01.02.2022 ist JCenter definitiv ausgefallen.

  • Vielen Dank. Nach vielen anderen Antworten hat diese funktioniert – wahrscheinlich, weil sie die richtigen Spiegel hat, die die älteren Versionen von Abhängigkeiten haben, die mein Projekt noch verwendet. Ich möchte nur, dass es funktioniert. Ich kann nicht alles upgraden…

    – Mehmet Fatih Yıldız

    23. Februar um 0:54 Uhr

Benutzer-Avatar
Ayoub EL ABOUSSI

In meinem Fall habe ich diese Schritte befolgt, um es zu erledigen:

  1. Platzieren Sie mavenCentral() vor jcenter()
  2. Upgrade Gradle mit dem Android Studio Upgrade Assistant (in meinem Fall auf 7.0.3 aktualisiert)
  3. Installieren Sie NDK (Side by Side) über Plugins (Android Studio)
  4. Clean & Rebuild-Projekt

1017440cookie-checkJCenter-Veraltung; Auswirkungen auf Gradle und Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy