Ich kann nicht in der Lage sein, eine zweite Gruppe von Gläsern zu einem lokalen Maven Repo mit einer separaten Upload-Aufgabe zu veröffentlichen, anders als uploadArchives
. Hier ist mein Setup:Artefakte von mehreren Konfigurationen in Maven in Gradle hochladen
uploadArchives {
repositories {
mavenDeployer {
repository(url: project.releaseRepoUrl)
snapshotRepository(url: project.snapshotRepoUrl)
}
}
}
task sourcesJar(type: Jar){ ... }
artifacts{
archives sourcesJar
}
Das obige funktioniert wie erwartet. Dann habe ich eine zusätzliche configuration
configurations{
guiceArchives
}
task guiceJar(type: Jar){ ... }
task guiceSourcesJar(type: Jar){ ... }
artifacts{
guiceArchives guiceJar
guiceArchives guiceSourcesJar
//archives guiceJar
//archives guiceSourcesJar
}
Ausführen gradle uploadArchives
OK funktioniert, aber gradle uploadGuiceArchives
tut nichts:
:core:guiceClasses UP-TO-DATE
:core:guiceJar UP-TO-DATE
:core:guiceSourcesJar UP-TO-DATE
:core:jar UP-TO-DATE
:core:sourcesJar UP-TO-DATE
:core:uploadArchives
BUILD FINISHED
Einzel guiceJar
und guiceSourcesJar
Aufgaben selbst gut funktionieren, und die Inhalte der guiceArchives
Konfiguration auch ausdrucken enthüllt Diese Gläser sind korrekt als Artefakte enthalten.
Ich habe versucht, vorübergehend guiceJar
und guiceSourcesJar
zum archives
Konfiguration zuweisen, die sie sagen, macht sich beschweren:
A POM cannot have multiple artifacts with the same type and classifier.
Welche genau das, was die manual says ist. Also nahm ich an, dass dieser Artefakt-Konflikt die Ursache des Problems war. So
Ich reparierte es addFilter
Verwendung als das Handbuch schon sagt, das ist toll gearbeitet, aber nur, wenn guiceJar
und guiceSourcesJar
sind archives
zugeordnet. Wenn ich sie zurück zu guiceArchives
und gradle uploadGuiceArchives
versuchen, tut es immer noch nichts.
Gibt es keine Möglichkeit, mehrere Artefakte mit verschiedenen Upload-Aufgaben hochzuladen?
Lösung:
Hier ist das Update mit der von @ Peter Niederwieser bereitgestellte Lösung.
einfach hinzufügen:
uploadGuiceArchives {
repositories {
mavenDeployer {
repository(url: project.releaseRepoUrl)
snapshotRepository(url: project.snapshotRepoUrl)
}
}
}
Hinweis: die addFilter
ist nicht erforderlich.
Dank!
Edit2:
Zur Vollständigkeit des project.releaseRepoUrl
und project.snapshotRepoUrl
zu einer lokalen Maven-Repository wie folgt festgelegt:
project.ext{
releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases"
snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots"
}
Ist dies immer noch der richtige Weg, um Konfigurationsartefakte im selben Projekt zu unterstützen? – cmcginty
Habe in diesem Bereich keine wichtigen Feature-Updates gefunden, also denke ich, es ist immer noch gültig und der beste Weg, es zu tun. – rodion