Maven-Repository zu build.gradle hinzufügen

118

Ich habe ein benutzerdefiniertes Maven-Repository zu build.gradle in Android Studio hinzugefügt, aber die Abhängigkeit wurde nicht gefunden

Maven Repository und Abhängigkeit

<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')
    }
}

Fehlermeldung in 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

Was fehlt mir in build.gradle?

André Ricardo
quelle

Antworten:

88

Sie müssen das Repository außerhalb von definieren buildscript. Der buildscriptKonfigurationsblock richtet nur die Repositorys und Abhängigkeiten für den Klassenpfad Ihres Build-Skripts ein, nicht jedoch für Ihre Anwendung.

Benjamin Muschko
quelle
Dadurch wurde die Abhängigkeit sortiert, aber Android Studio hat die Repositorys nicht neu geladen, sodass "org.achartengine.chart importieren. *;" fehlgeschlagen, wissen Sie, wie die Repositorys "aktualisiert" werden?
André Ricardo
3
Sehr wichtig zu folgen. Verschwendete 15 Minuten auf diesem
Nitin Bansal
sollten sowohl innerhalb als auch außerhalb buildscript repositoriesdieselben Remote-Repositorys haben?
R.Abedi
158

Nach dem

apply plugin: 'com.android.application'

Sie sollten dies hinzufügen:

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

@ Benjamin erklärte den Grund.

Wenn Sie einen Maven mit Authentifizierung haben, können Sie Folgendes verwenden:

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

Es ist wichtig, die Reihenfolge.

Gabriele Mariotti
quelle
6
Wie fügen wir der Gradle-Datei eine Cloudbees-Authentifizierung hinzu?
Inder
Wie kann ich Android Studio so ändern, dass das Maven-Repository standardmäßig zu build.gradle hinzugefügt wird? Ich vergesse dies immer wieder und muss neu entdecken, warum Bibliotheken nicht geladen werden.
Mike
36

Android Studio Benutzer:

Wenn Sie grade verwenden möchten, gehen Sie zu http://search.maven.org/ und suchen Sie nach Ihrem Maven-Repo. Klicken Sie dann auf die "neueste Version" und auf der Detailseite unten links sehen Sie "Gradle", wo Sie diesen Link kopieren / in das build.gradle Ihrer App einfügen können.

Geben Sie hier die Bildbeschreibung ein

Mikro
quelle
1
Du hast meinen Tag gemacht, vielen Dank. Warum ist dies nicht auf der offiziellen ZXing gh-Seite? Es sollte nicht so schwer zu finden sein ...
Nadia Castelli
8

Sie müssen repositoriesIhrer Build-Datei hinzufügen . Für Maven-Repositorys müssen Sie dem Repository-Namen das Präfix voranstellenmaven{}

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

Fügen Sie das Maven-Repository wie folgt außerhalb des buildscriptKonfigurationsblocks Ihrer Hauptdatei hinzu build.gradle:

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

Stellen Sie sicher, dass Sie sie wie folgt hinzufügen:

apply plugin: 'com.android.application'
Kasumi Gunasekara
quelle