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/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Linie in die Abhängigkeiten zu gehören LibA ist falsch. Um ein library-Projekt, verwenden Sie diese:
Wenn das library-Verzeichnis nicht im root Ihres Projekt-Verzeichnisses, müssen Sie angeben, eine colon-delimited path. Zum Beispiel, wenn Sie Ihre Verzeichnis-Struktur:
Ihre Abhängigkeit wird:
Dies ist die gleiche wie die notation, die Sie verwenden, in Ihren Einstellungen.gradle-Datei.
Vielleicht problem ist, dass Sie mavenCentral als repository für Bibliotheksprojekte
ist und nicht zu deinem nexus repository, in dem die tatsächlichen Abhängigkeiten vorhanden
Wenn Sie hochgeladen Bibliothek Artefakt für beide jar und aar, versuchen Sie dies.
In meiner Arbeit, die ich verwendet habe
compile project(':google-play-services_lib')
stattcompile ('google-play-services_lib')
wenn ich erkläre abhängigen Projekte in meinem build.gradle-Datei. Ich denke, dass ist der richtige Weg, dies zu tun mit Gradle: http://www.gradle.org/docs/current/userguide/dependency_management.html#sub:project_dependencieswenn Sie nicht wollen, um es als sub-Modul in der ersten Version.gradle-Datei, die Sie hinzufügen können, das lokale maven-repository
mavenLocal()
aber müssen Sie zum ausführen der Installation auf libA ersten.
Ich hatte eine ähnliche Fehlermeldung, nachdem er versehentlich eine zyklische Abhängigkeit zwischen Bibliotheken:
bauen.gradle in commons-utils
bauen.gradle im test-utils
Dies zu beheben das problem gelöst. Die Fehlermeldung ist nicht sehr explizit.
Nicht wissen, für sicher, nur ein paar Gedanken:
gradle assemble
stattgradle build
? Dies sollte überspringen tests, wie ich sehe Fehler im Zusammenhang mit der test-Aufgabe..aar
Dateien von hand hochladen und repo-auch von hand.:GradleTest
Modul? Sehen Abschnitt 50.4.7Dieses Problem Weg gegangen ist, der mit späteren Versionen von Gradle und Android-Gradle-Plugin. Scheint gerade eine frühe Version bug.