web-dev-qa-db-fra.com

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

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

Dépôt Maven et dépendance

<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

Qu'est-ce qui me manque dans build.gradle?

108
André Ricardo

Vous devrez définir le référentiel en dehors de buildscript. Le bloc de configuration buildscript configure uniquement les référentiels et les dépendances pour le chemin d'accès aux classes de votre script de construction, mais pas de votre application.

83
Benjamin Muschko

Après

apply plugin: 'com.Android.application'

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

C'est important la commande.

151
Gabriele Mariotti

Utilisateurs d'Android Studio:

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

enter image description here

32
Micro

Ajoutez le référentiel maven en dehors du bloc de configuration buildscript de votre fichier principal build.gradle 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'
5
Kasumi Gunasekara

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

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