Gradle nicht inklusive Abhängigkeiten-in veröffentlicht pom.xml
Habe ich ein Gradle-Projekt bin ich mit dem maven-publisher plugin zu installieren mein android-Bibliothek auf lokalen maven und maven-repo.
Funktioniert, aber die erzeugten pom.xml beinhaltet keine Informationen zu Abhängigkeiten. Gibt es einen workaround, um diese Informationen enthalten, oder bin ich gezwungen, zurück zu gehen, um die maven plugin und alles tun, die manuelle Konfiguration, die erfordert?
Recherche merkte ich, dass ich nicht sagen, die Veröffentlichung, wo die Abhängigkeiten sind, ich bin nur unter Angabe der Ausgabe/Artefakt, also brauche ich einen Weg, um den link dieser MavenPublication
, um die Abhängigkeiten, aber ich habe noch nicht herausgefunden, wie zu tun, dass in der Dokumentation.
------------------------------------------------------------ Gradle 1.10 ------------------------------------------------------------ Erstellen Zeit: 2013-12-17 09:28:15 UTC Build-Nummer: keine Revision: 36ced393628875ff15575fa03d16c1349ffe8bb6 Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.2 kompiliert am 8. Juli 2013 Ivy: 2.2.0 JVM: 1.7.0_60 (Oracle Corporation 24.60-b09) OS: Mac OS X 10.9.2 x86_64
Relevante bauen.gradle Abschnitte
//...
apply plugin: 'android-library'
apply plugin: 'robolectric'
apply plugin: 'maven-publish'
//...
repositories {
mavenLocal()
maven {
name "myNexus"
url myNexusUrl
}
mavenCentral()
}
//...
android.libraryVariants
publishing {
publications {
sdk(MavenPublication) {
artifactId 'my-android-sdk'
artifact "${project.buildDir}/outputs/aar/${project.name}-${project.version}.aar"
}
}
repositories {
maven {
name "myNexus"
url myNexusUrl
credentials {
username myNexusUsername
password myNexusPassword
}
}
}
}
Erzeugt pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example.android</groupId>
<artifactId>my-android-sdk</artifactId>
<version>gradle-SNAPSHOT</version>
<packaging>aar</packaging>
</project>
- 'maven-publisher plugin': meinst du das maven-plugin veröffentlichen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage, dies zu umgehen, indem er das Skript fügen Sie die Abhängigkeiten, um die pom direkt über
pom.withXml
.Dies funktioniert für mein Projekt, es können unvorhergesehene Folgen haben in anderen.
*(MavenPublication)
block und alle meine Abhängigkeiten sind jetzt in meinem aar-pom. Vielen thxit.group
,it.name
nicht null oder nicht angegeben, so dass es überspringt die Standard-Abhängigkeit von lib-Verzeichnis in android studio. Ohne es gradle erzeugt ein ungültiges POM-Datei und stürzt ab.Ich bin aktualisiert, C. Ross Lösung. Dieses Beispiel generiert pom.xml mit Abhängigkeiten von kompilieren, Konfiguration und auch mit speziellen build-Typ Abhängigkeiten, zum Beispiel, wenn Sie unterschiedliche Abhängigkeiten für den release oder debug version (debugCompile und releaseCompile). Und es wird auch hinzufügen exlusions
uploadArchives
Aufgabe es zu sein scheint, fehlt diescope
Attribut. Gibt es einen Weg, um leicht zu zählen, dass dein code oben?def configurationNames = ["${variant.name}Compile", 'compile']
debugCompile und releaseCompile shoulb übersprungen werden, aber den Namen der Konfiguration kompilieren, brauchen Sie in der scope-Attribut. Machen pom mit dependensies alle Bereiche, die Sie benötigen, um alle von Ihnen (Laufzeit, etc.) in diesem array. Und in der Schleife nur prüfen, ob es nicht debugCompile oder releaseCompile append node Bereich.exclusionNode.appendNode('scope', configurationName)
Mit gradle 3
implemention
eingeführt wurde, zu ersetzencompile
.Verwenden Sie diese stattdessen.
Ich denke, es hat etwas zu tun mit der
from components.java
Richtlinie, wie in der guide. Ich hatte ein ähnliches setup und es macht den Unterschied zu fügen Sie die Zeile in der Veröffentlichung block:.jar
Ausgang aber nicht füraar
afaik. Offenbar seine gebrochen aar derzeit (gradle-plugin 1.2.2)aar
und die Notwendigkeit zu entfernen, md5/sha-Dateien, weil der überschriebenpom
build.gradle
- Datei, sehen Sie diese Fehlermeldung, wenn Sie versuchen, um eine Analyse der Datei:"Could not find property 'java' on SoftwareComponentInternal set."
2.1.0
auch nicht funktioniert, füraar
s. Gibt es eine Arbeit um?