web-dev-qa-db-fra.com

Pourquoi les pots du SDK Android Android) ne se trouvent-ils dans aucun référentiel Maven?

Y a-t-il une raison pour laquelle la chaîne d'outils Android et les pots de développement ne sont pas dans le référentiel Maven CEntral? Est-ce vraiment juste que personne ne l'a fait? Ou y a-t-il des problèmes de licence? Je veux dire que c'est tous open source non? (sauf pour les API Google).

Je suis tenté de le mettre moi-même dans un référentiel non central, mais je veux juste être sûr que quelqu'un d'autre ne l'a pas encore fait et que je ne correspondrai pas ou ne jouerai pas de numéro de téléphone avec des avocats.

45
shemnon

Google a désormais un référentiel maven officiel annoncé sur Google IO 2017.

buildscript {
    repositories {
        maven {
          // Google Maven Repository
          url 'https://maven.google.com'
        }
    }
    ...
}

Nouveautés de Android Support Library (Google I/O '17)
https://youtu.be/V6-roIeNUY0?t=3m34s

Nouveautés de Android Outils de développement (Google I/O '17)
https://youtu.be/Hx_rwS1NTiI?t=20m05s

Référentiel Maven de Google
https://developer.Android.com/studio/build/dependencies.html#google-maven

Migrer vers le nouveau plugin
https://developer.Android.com/studio/preview/features/new-Android-plugin-migration.html

22
Ryan R

Google l'a bloqué. De ce lien :

Les artefacts Android Android ont été créés et publiés dans le référentiel Maven grâce aux efforts du projet Android pour le projet Maven. Google a empêché le Android jars de téléchargement vers Maven, donc, le tiers, Android pour le projet Maven a été lancé pour fournir un API compatible Android artefact qui pourrait être téléchargés dans le référentiel Maven. Il existe désormais des artefacts pour chaque version principale Android version disponible dans le référentiel Maven. Ils ne sont cependant pas fonctionnels et ne fournissent que des implémentations tronquées de l'API. Toutes les méthodes de toutes les classes lèvent une exception d'exécution. Parce qu'une application Android s'exécute sur un appareil, elle n'utilisera jamais ces bibliothèques pour l'exécution, mais la compatibilité de l'API permet de compiler une application comme si c'était la vraie bibliothèque.

39
thomaux

J'ai trouvé une meilleure solution, en utilisant les bibliothèques communes fournies par le SDK, je viens d'utiliser Android Home comme référentiel dans le pom.xml.

 <repositories>
    <repository>
        <id>com.Android.support</id>
        <url>file://${env.Android_HOME}/extras/Android/m2repository</url>
    </repository>
</repositories>

fonctionne pour moi maintenant.

9
Marco

Il est possible d'utiliser le Android_HOME bocaux en spécifiant un système -<dependency> avec <systemPath>:

<properties>
    <Android.platform>21</Android.platform>
</properties>
<dependencies>
    <dependency>
        <groupId>com.google.Android</groupId>
        <artifactId>Android</artifactId>
        <version>${Android.platform}</version>
        <scope>system</scope>
        <systemPath>${env.Android_HOME}/platforms/Android-${Android.platform}/Android.jar</systemPath>
    </dependency>
</dependencies>
4
Johannes Brodwall

Je pense qu'ils sont dans Maven Central:

http://mvnrepository.com/artifact/com.google.Android/android

Il ne semble pas avoir encore 3.0, mais il a quelques révisions plus anciennes. Vous pouvez construire Android projets avec maven à l'aide de maven-Android-plugin .

1
Erich Douglass