Veröffentlichen Sie eine Android-Bibliothek, um Maven mit aar-und source-jar
Kann jemand mir einen Tipp geben, wie das maven-veröffentlichen gradle plugin zu veröffentlichen, eine com.android.library Projekt/Modul mit aar-und source-jar? Ich bin in der Lage, dies zu tun mit dem alten maven-plugin - aber ich möchte die neuen maven-plugin veröffentlichen.
- Nein - er ist auch mit der alten maven-plugin und nicht das neue maven-plugin veröffentlichen.
- Können Sie wählen Sie eine Antwort aus?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel für die Verwendung der neuen
maven-publish
plugin.Veröffentlichen mit
./gradlew clean build publish
classifier "source"
mitclassifier "sources"
.Invalid publication 'library': multiple artifacts with the identical extension and classifier ('aar', 'null').
Nachricht als gut. @mudit_sen, haben Sie einen Weg finden, diese zu lösen?Hier ist meine verbesserte Lösung, basierend auf andere Antworten.
Kern: https://gist.github.com/Robyer/a6578e60127418b380ca133a1291f017
Änderungen von anderen Antworten:
classifier
- es muss"sources"
(nicht"source"
)Griffe Abhängigkeiten
@aar
undtransitive: false
. In diesem Fall setzen wir Ausgrenzung in POM zu ignorieren, alle transitiven Abhängigkeiten von dieser Abhängigkeit.Unterstützt auch custom exclude-Regeln auf Abhängigkeiten, z.B.:
Changelog:
bundleRelease
zubundleReleaseAar
als es geändert wurde, neue Gradle (siehe diese Antwort)getAllDependencies
zugetDependencies
zu beheben dupliziert resultierenden Einträge (wie erwähnt, in den Kommentaren auf meinem Gist).project.afterEvaluate{...}
um es zu beheben für neue Gradle.def dependencyNode = dependenciesNode.appendNode('dependency')
wirft eine AusnahmeCould not get unknown property 'dependenciesNode' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
Could not get unknown property 'bundleRelease' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
irgendwelche Ideen?bundleReleaseAar
. Dank diese Antwort von Artem ZinnatullinbundleReleaseAar
, aber es scheint, wir haben einfach zu wickeln ganzepublishing
block inproject.afterEvaluate { publishing { ... } }
. Dann funktioniert es wieder. (Ich aktualisierte die Antwort nur jetzt)Ein wenig zwicken, um dskinners Antwort mit der korrekten Generierung von Abhängigkeiten:
Können Sie auch ändern
version
undgroupId
durch die Definition:artifact bundleRelease
. Auch der Zustand(it.name != null || "unspecified".equals(it.name))
nicht richtig. Meinst du(it.name != null && "unspecified" != it.name)
?Wenn Sie vermeiden möchten, boilerplate-codes, da die
maven-publish
plugin nicht schreiben-Abhängigkeiten in pom.xmlVersuchen dieses plugin: android-maven-veröffentlichen
Können Sie auch die android-maven-plugin. Es schafft die .aar, javadoc.jar, sources.jar und .pom und aktualisiert die maven-metadata.xml nach dem hochladen der Dateien in das maven-repository. Außerdem habe ich das Skript auf GitHub.
Rufen Sie es mit