Question

Comment puis-je faire en sorte que Gradle 1.10 utilise mon référentiel Maven local ?Lorsque j'exécute mon script Gradle, il recherche toujours l'artefact dans /Applications/Android Studio.app/sdk/extras/android/m2repository/ au lieu de ${HOME}/.m2/repository/

Dans le build.gradle, j'ai essayé :

repositories {
    mavenCentral()
    mavenLocal()
 }

et j'ai essayé ceci :

repositories {
    mavenCentral()
    maven {
        url '${HOME}/.m2/repository/'
    }
 }

J'ai alors une dépendance qui se trouve dans mon dépôt .m2 local :

dependencies {
    compile 'com.android.support:support-v4:20.0.+'
    compile 'com.android.support:appcompat-v7:20.0.+'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile 'com.profferapp:proffer_dto_customer_android:1.0'
    compile 'com.test:artifact:1.0' // this is in my .m2 repository
}

Aucune de ces configurations ne pointe vers mon référentiel maven local.

Était-ce utile?

La solution

Si vous souhaitez effectuer une substitution de variable ${...}, vous devez utiliser des guillemets doubles (") au lieu de guillemets simples (').Les guillemets doubles désignent des GStrings, qui peuvent faire cela, mais les chaînes avec des guillemets simples sont toujours interprétées littéralement.

Donc:

repositories {
    mavenCentral()
    maven {
        url "${HOME}/.m2/repository/"
    }
 }

Assurez-vous de mettre ce bloc dans le fichier de construction de votre module, et non dans le buildscript bloc du fichier de construction de niveau supérieur ;ce dernier détermine uniquement où trouver le plugin Android, pas les dépendances spécifiques à votre module

En raison de la chaîne mal citée, votre référentiel local n'est probablement pas visible.De plus, l'autre question concernant le plugin ajoutant implicitement le dépôt Maven dans votre SDK est également correcte.Cela récupérera les dépendances du support Android.

Gradle Citations simples ou doubles a un peu plus d'informations et un lien que vous pouvez suivre.

Autres conseils

Je veux commenter la réponse de Scott Barta mais je n'ai pas assez de réputation.

  1. $HOME ne fonctionne pas pour moi (en CLI, pas dans Android Studio), System.getenv('HOME') le fait
  2. il n'est pas nécessaire de placer le bloc des référentiels dans le fichier build.gradle de TOUS les modules, il suffit de placer le bloc dans un bloc "allprojects" dans le build.gradle de niveau supérieur (je l'ai appris ici)

Donc, la solution finale que j'utilise est la suivante :

// in the top-level build.gradle:
buildscript {
    ...
}

allprojects {
    repositories {
        mavenCentral()
        maven { url System.getenv('HOME') + "/.m2/repository/" }
    }
}

Quand tu faisapply plugin: 'android'

le plugin Android ajoute un autre référentiel - celui sous votre SDK.Il contient ces bibliothèques de support et d’extension. com.test:artifact:1.0 est probablement extrait de votre référentiel Maven local.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top