Android Maven Build – AAR wird als jar eingebunden


In einem Android Projekt, das mit Maven gebaut wird (ja, das gibt es) hatten wir das Problem, dass scheinbar die von Maven das Artefakt

appcompat:aar:x.x.x

als jar gesucht und entsprechend nicht gefunden wurde.

[ERROR] Failed to execute goal on project baseClassesAndroid: Could not resolve dependencies for project de.schoeso.android:baseClassesAndroid:aar:0.0.0-SNAPSHOT: 
The following artifacts could not be resolved: androidx.appcompat:appcompat:jar:1.2.0,  ...  with status code 501 -> [Help 1]

In den POMs waren die Abhängigkeiten korrekt als aar definiert. Nach einem Aufruf des Builds mit dem Parameter

-X

findet sich im detaillierten Log folgendes

[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=7160200, ConflictMarker.markTime=1248800, ConflictMarker.nodeCount=275, 
ConflictIdSorter.graphTime=1211000, ConflictIdSorter.topsortTime=198700, ConflictIdSorter.conflictIdCount=66, ConflictIdSorter.conflictIdCycleCount=0, 
ConflictResolver.totalTime=4759700, ConflictResolver.conflictItemCount=176, DefaultDependencyCollector.collectTime=1811825300, DefaultDependencyCollector.transformTime=14903200}
[DEBUG] de.schoeso.android:baseClassesAndroid:aar:0.0.0-SNAPSHOT
[DEBUG]    de.schoeso.baseClasses:baseClassesAbstract:jar:0.0.0-SNAPSHOT:compile
[DEBUG]    de.schoeso.baseClasses:baseClasses:jar:0.0.0-SNAPSHOT:compile
[DEBUG]    de.schoeso.baseClasses:baseClassesGis:jar:0.0.0-SNAPSHOT:compile
[DEBUG]    de.schoeso:baseProjectBaseClasses:jar:0.0.0-SNAPSHOT:compile
[DEBUG]    schoeso.externandroid.osmdroid:osmdroid-android:aar:6.1.5:compile
[DEBUG]    schoeso.externandroid.osmdroid:osmbonuspack:aar:6.6.0:compile
[DEBUG]    schoeso.externandroid:ormlite-include:pom:5.0.0:compile
[DEBUG]       schoeso.externandroid.ormlite:ormlite-android:jar:5.0:compile
[DEBUG]       schoeso.externandroid.ormlite:ormlite-core:jar:5.0:compile
[DEBUG]    com.squareup.okhttp3:logging-interceptor:jar:4.6.0:compile
[DEBUG]       com.squareup.okhttp3:okhttp:jar:4.6.0:compile
[DEBUG]          com.squareup.okio:okio:jar:2.6.0:compile
[DEBUG]             org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.3.70:compile
[DEBUG]          org.jetbrains.kotlin:kotlin-stdlib:jar:1.3.71:compile
[DEBUG]             org.jetbrains:annotations:jar:13.0:compile
[DEBUG]    com.squareup.retrofit2:retrofit:jar:2.8.1:compile
[DEBUG]    com.fasterxml.jackson.core:jackson-annotations:jar:2.10.4:compile
[DEBUG]    com.fasterxml.jackson.core:jackson-databind:jar:2.10.4:compile
[DEBUG]       com.fasterxml.jackson.core:jackson-core:jar:2.10.4:compile (version managed from 2.10.4)
[DEBUG]    android:android:jar:10_r4:provided
[DEBUG]    androidx.appcompat:appcompat:aar:1.2.0:compile
[DEBUG]       androidx.annotation:annotation:jar:1.1.0:compile
[DEBUG]       androidx.core:core:aar:1.3.0:compile
[DEBUG]          androidx.versionedparcelable:versionedparcelable:aar:1.1.0:compile
...
[DEBUG]                androidx.print:print:aar:1.0.0:compile
[DEBUG]             androidx.slidingpanelayout:slidingpanelayout:aar:1.0.0:compile
[DEBUG]             androidx.asynclayoutinflater:asynclayoutinflater:aar:1.0.0:compile
[DEBUG]    androidx.constraintlayout:constraintlayout:aar:2.0.4:compile
[DEBUG]       androidx.appcompat:appcompat:jar:1.2.0:compile
[DEBUG]       androidx.core:core:jar:1.3.1:compile
[DEBUG]       androidx.constraintlayout:constraintlayout-solver:jar:2.0.4:compile
[DEBUG]    androidx.localbroadcastmanager:localbroadcastmanager:aar:1.0.0:compile
[DEBUG]    androidx.swiperefreshlayout:swiperefreshlayout:aar:1.1.0:compile
...

Es ist zu sehen, dass die verwendete Bibliothek

constraintlayout 

für den jar Import zuständig ist. Sieht man sich das aus Maven gezogene POM dieser Bibliothek an, wird deutlich, dass der Artefakttyp der Abhängigkeiten nicht hochgeladen wurde. Um dies zu lösen muss das Artefakt im lokalen Repository mit korrigierter POM bereitgestellt werden.

Du hast Fragen oder Anmerkungen? Kontakt: arndt@schoenb.de