Android-Gradle-Bibliothek-Abhängigkeit mit Bibliothek Abhängigkeit mit Nexus

Ich Wechsel mein Projekt auf Gradle und einem internen SonaType Nexus für das hosting von meine Abhängigkeiten. Meine core-Projekts hängt davon ab, Bibliothek, Projekt-und library-Projekt hat eine Abhängigkeit auf Bibliothek-Projekt B.

Mein Problem ist, dass sobald ich hinzufügen, LibA, um mein Haupt-Projekt, das ich diese Fehlermeldung erhalten:
"Modul-version com.Beispiel:LibA:1.1 hängt Bibliotheken, ist aber nicht die Bibliothek selbst"

Habe ich keine Probleme hinzufügen Bibliothek Projekte mit jar-Abhängigkeiten mit der gleichen build-Skript. Ich habe gesehen, Menschen tun dies erfolgreich mit LOKAL (im Projekt) android-Bibliotheken, aber niemand tut es mit maven-repos.

Ist das ein bug in gradle oder habe ich misconfigure die Bibliothek baut?

Core-Projekt Zu Bauen

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

repositories {
    maven {
        url "http://localhost:8081/nexus/content/repositories/releases/"
    }

    maven {
        url "http://localhost:8081/nexus/content/repositories/central/"
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
    }
}

dependencies {
    compile 'com.android.support:support-v4:+'
    compile('com.example:LibA:1.+')
}

LibA Bauen

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 17

        versionCode = "3"
        versionName = "1.2"
    }

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

        }
    }

    repositories {
        mavenCentral()
    }

    dependencies {
        compile ('com.example:LibB:1.+')
    } ...

LibB Bauen

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 17

        versionCode = "1"
        versionName = "1.0"
    }

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

        }
    }

    repositories {
        mavenCentral()
    }

    dependencies {
    } ...

Bearbeiten: Hinzufügen -info Ausgabe für die Fehler.

* What went wrong:
A problem occurred configuring project ':GradleTest'.
> Failed to notify project evaluation listener.
   > Module version com.example:LibA:1.+ depends on libraries but is not a library itself

Edit 2: Hinzufügen von meinem lokalen maven-upload-Skript für LibA

apply plugin: 'maven'
apply plugin: 'signing'

group = "com.example"
version = defaultConfig.versionName

configurations {
    archives {
        extendsFrom configurations.default
    }
}

signing {
    required { has("release") && gradle.taskGraph.hasTask("uploadArchives") }
    sign configurations.archives
}


uploadArchives {
    configuration = configurations.archives
    repositories.mavenDeployer {
        beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
        repository(url: sonatypeRepo) {
            authentication(userName: sonatypeUsername,
                    password: sonatypePassword)
        }

        pom.project {
            name 'com-example'
            packaging 'aar'
            description 'none'
            url 'https://internal github link'

            scm {
                url 'scm:git@https://internal github link'
                connection 'git@https://internal github link'
                developerConnection 'git@https://internal github link'
            }

            licenses {
                license {
                    name 'example'
                    url 'example'
                    distribution 'example'
                }
            }

            developers {
                developer {
                    id 'example'
                    name 'example'
                    email 'example'
                }
            }

            groupId "com.example"
            artifactId rootProject.name //LibA
            version defaultConfig.versionName
        }
    }
}
  • Maven ist eher unversöhnlich auf fleckige verbindungen. Könnten Sie versuchen, löschen Sie die m2-cache-Verzeichnis und geben Sie einen anderen gehen?
  • FWIW, Xav ist in Sie suchen: groups.google.com/forum/#!Thema/adt-dev/frugpmBwQt0
  • FWIW, seit mein Kopfgeld nicht Holen Sie sich eine klare Lösung, ich habe eine damit zusammenhängende Frage ALSO, versuchen, um zu sehen, ob es eine funktionierende Konfiguration, die wir verwenden können als Grundlage für die Bestimmung, wo unser Problem liegt: stackoverflow.com/questions/20551160/...
InformationsquelleAutor sgarman | 2013-11-19
Schreibe einen Kommentar