Wie kann ich Jar Verpackung von android-library
Projekt freigeben?
Ich habe festgestellt, classs.jar befindet sich unter build/bundles/release/classes.jar
und ich nehme an, das ist korrekt Jar-Paket (enthält *.class
Dateien).Android Bibliothek Gradle Release JAR
Gibt es einen offiziellen Weg, Bibliothek als JAR anstelle von AAR freizugeben? zusammen mit AAR Paket
bearbeiten
Ich benutze Gradle Maven Artefakte zu lösen, und ich möchte JAR veröffentlichen. So JAR mit Unterschrift, md5, manifestieren, ...
basierend auf https://chris.banes.me/2013/08/27/pushing-aars-to-maven-central/
apply plugin: 'maven'
apply plugin: 'signing'
configurations {
archives {
extendsFrom configurations.default
}
}
def sonatypeRepositoryUrl
if (isReleaseBuild()) {
println 'RELEASE BUILD'
sonatypeRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
} else {
println 'DEBUG BUILD'
sonatypeRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
}
if(!hasProperty('nexusPassword')) {
ext.set('nexusPassword', System.console().readPassword("\n\$ Type in password for Sonatype nexus account " + nexusUsername + ": "))
}
if(!signing.hasProperty('password')) {
ext.set('signing.password', System.console().readPassword("\n\$ Type in GPG key password: "))
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
pom.artifactId = POM_ARTIFACT_ID
repository(url: sonatypeRepositoryUrl) {
authentication(userName: nexusUsername, password: nexusPassword)
}
pom.project {
name POM_NAME
packaging POM_PACKAGING
description POM_DESCRIPTION
url POM_URL
scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id "loopj"
name "James Smith"
}
developer {
id "smarek"
name "Marek Sebera"
}
}
}
}
}
}
signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
}
task androidJavadocsJar(type: Jar) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
}
mit
task androidJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
}
nur Java-Dateien verpacken, nicht kompiliert und gelinkt gegen android sdk
Ich habe Angst, das ist die richtige Antwort :-) Danke, ich werde letzte Bearbeitung posten, die ich gemacht habe, um es zu arbeiten –
Ich kann auch bestätigen, dass dies funktioniert. Beachten Sie, dass die generierte Aufgabe nicht angezeigt wird, wenn Sie ** 'grddle tasks' ** ausführen, nur mit **' grddle tasks --all' **. Danke noch einmal! – CommonsWare
Danke, das hilft, aber es generiert immer noch nicht die Klassendateien für Abhängigkeiten.Ich versuche, ein SDK-Krug im Grunde zu machen, der ein einzelnes Glas sein wird, um zu überschreiten, aber diese Kompilierung schließt Modulprojekte nicht ein, von denen es abhängig ist und zieht nicht Gläser vom Abhängigkeitsabschnitt usw. ab. Haben Sie irgendwelche Vorschläge, um dies zu tun, wo es die Bibliothek Projekte in das Glas auch zusammenstellt, so muss ich nicht 4 Gläser, eins für jedes Bibliotheksprojekt austeilen. Dann wäre es schön, herauszufinden, wie man die Abhängigkeitsgläser von Maven wie Gson oder Otto einbezieht. – Sam