ajouter le référentiel maven à build.gradle

118

J'ai ajouté un référentiel maven personnalisé à build.gradle dans Android Studio mais la dépendance n'est pas trouvée

Dépôt et dépendances Maven

<repository>
    <id>achartengine</id>
    <name>Public AChartEngine repository</name>
    <url>https://repository-achartengine.forge.cloudbees.com/snapshot/</url>
</repository>

<dependency>
    <groupId>org.achartengine</groupId>
    <artifactId>achartengine</artifactId>
    <version>1.2.0</version>
</dependency>

build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile group: 'org.achartengine', name: 'achartengine', version: '1.2.0'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

Message d'erreur dans Android Studio:

A problem occurred configuring root project 'My-MobileAndroid'.
> Failed to notify project evaluation listener.
> Could not resolve all dependencies for configuration ':_DebugCompile'.
  > Could not find org.achartengine:achartengine:1.2.0.
    Required by:
        :My-MobileAndroid:unspecified

Que me manque-t-il dans build.gradle?

André Ricardo
la source

Réponses:

88

Vous devrez définir le référentiel en dehors de buildscript. Le buildscriptbloc de configuration configure uniquement les référentiels et les dépendances pour le chemin de classe de votre script de construction, mais pas pour votre application.

Benjamin Muschko
la source
cela a trié la dépendance, mais Android Studio n'a pas rechargé les référentiels, donc "import org.achartengine.chart. *;" échoué, savez-vous comment "actualiser" les référentiels?
André Ricardo
3
Très important à suivre. Gâché 15 minutes sur celui-ci
Nitin Bansal
devrait à la fois à l'intérieur et à l'extérieur d' buildscript repositoriesavoir les mêmes dépôts distants?
R.Abedi
158

Après

apply plugin: 'com.android.application'

Vous devez ajouter ceci:

  repositories {
        mavenCentral()
        maven {
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        }
    }

@Benjamin a expliqué la raison.

Si vous avez un maven avec authentification, vous pouvez utiliser:

repositories {
            mavenCentral()
            maven {
               credentials {
                   username xxx
                   password xxx
               }
               url    'http://mymaven/xxxx/repositories/releases/'
            }
}

Il est important de l'ordre.

Gabriele Mariotti
la source
6
Comment ajouter l'authentification cloudbees dans le fichier gradle?
inder
Comment puis-je modifier Android Studio pour que le référentiel maven soit ajouté par défaut à build.gradle. J'oublie toujours cela et je dois redécouvrir pourquoi les bibliothèques ne se chargent pas.
Mike
36

Utilisateurs d'Android Studio:

Si vous souhaitez utiliser le grade, accédez à http://search.maven.org/ et recherchez votre référentiel maven. Ensuite, cliquez sur "dernière version" et dans la page de détails en bas à gauche, vous verrez "Gradle" où vous pouvez ensuite copier / coller ce lien dans build.gradle de votre application.

entrez la description de l'image ici

Micro
la source
1
Vous avez fait ma journée, merci beaucoup. Aussi, pourquoi ce n'est pas dans la page officielle de ZXing gh? Ça ne devrait pas être si difficile à trouver ...
Nadia Castelli
8

Vous devez ajouter repositoriesà votre fichier de construction. Pour les référentiels maven, vous devez préfixer le nom du référentiel avecmaven{}

repositories {
  maven { url "http://maven.springframework.org/release" }
  maven { url "http://maven.restlet.org" }
  mavenCentral()
}
Marcin Szymczak
la source
6

Ajoutez le référentiel maven en dehors du buildscriptbloc de configuration de votre build.gradlefichier principal comme suit:

repositories {
        maven {
            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
        }
    }

Assurez-vous de les ajouter après ce qui suit:

apply plugin: 'com.android.application'
Kasumi Gunasekara
la source