Domanda

Come posso ottenere Gradle 1.10 per utilizzare il mio repository locale Maven?Quando eseguo la mia migliore scrittura di gradle, cerca sempre l'artefatto in /Applications/Android Studio.app/sdk/extras/android/m2repository/ invece di ${HOME}/.m2/repository/

in the build.gradle ho provato:

repositories {
    mavenCentral()
    mavenLocal()
 }
.

e ha provato questo:

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

Ho quindi una dipendenza che si trova nel mio repository locale .M2:

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
}
.

Nessuna di queste configurazioni indica il mio repository MAVEN locale.

È stato utile?

Soluzione

Se si desidera eseguire $ {...} sostituzione variabile, è necessario utilizzare le virgolette doppie (") invece di virgolette singole ('). Le virgolette doppie denotano Gstrings, che possono farlo, ma le stringhe con citazioni singole sonosempre interpretato letteralmente.

Allora:

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

Assicurati di inserire questo blocco nel file di build del modulo, non il blocco buildscript del file di build di alto livello;Quest'ultimo determina solo dove trovare il plugin Android, non le dipendenze specifiche del modulo

A causa della stringa errata, probabilmente non vede il tuo repository locale.Inoltre, anche l'altra domanda sul plugin aggiungendo implicitamente il repo MAVEN nel proprio SDK.Ciò raccoglierà le dipendenze di supporto Android.

Gradle single vs doppio virgolette ha un po 'di più informazioni e un link che puoiSeguire.

Altri suggerimenti

Voglio commentare la risposta di Scott Barta ma non ho abbastanza reputazione.

    .
  1. $ Home non funziona per me (in CLI, non Android Studio), System.getenv ('Home') fa
  2. Non è necessario inserire i repository bloccare il file build.gradle dei moduli, basta inserire il blocco all'interno di un blocco "AllProjects" nella build.gradle di alto livello (l'ho imparato )
  3. Quindi, la soluzione finale che uso è:

    // in the top-level build.gradle:
    buildscript {
        ...
    }
    
    allprojects {
        repositories {
            mavenCentral()
            maven { url System.getenv('HOME') + "/.m2/repository/" }
        }
    }
    
    .

quando lo fai apply plugin: 'android'

Il plugin Android aggiunge un altro repository - quello sotto il tuo SDK.Contiene tali librerie di supporto e prolunga.com.test:artifact:1.0 è probabile che si formino il repository locale di Maven.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top