Momentan ist unser grddle-Setup darauf ausgerichtet, nach Abschluss eines Builds bestimmte Maven-Repositories zu veröffentlichen. Für einen bestimmten Kunden muss ich die Dateien jars, license files, pom.xml und ivy.xml zippen und alles in einer Zip-Datei senden. Um dies zu tun, muss ich nur einen alternativen Ort definieren, um es zu veröffentlichen. Die gesamte Dokumentation auf der Grapple-Site scheint darauf gerichtet zu sein, einen Satz von Veröffentlichungsregeln zu schreiben, keinen alternativen Satz.In Großbuchstaben, wie kann ich die Dateien ivy.xml und pom.xml generieren?
Ich hatte gehofft, einfach eine andere Aufgabe zu schreiben, die sich auf den Aufbau dieser kundenspezifischen Zip-Datei konzentrieren würde. Bis jetzt habe ich es alle Gläser (die Quelle und runable Code einschließt) zusammen mit der Lizenz- und Mitteilungsakte sammeln. Aber ich habe nicht die Nuss geknackt, als ich ein lokales Efeu-Repository und ein lokales Maven-Repository definiert habe, das nur ein Teil dieser alten Aufgabe ist.
task alt {
dependsOn subprojects*.tasks*.matching { task -> task.name == 'assemble' }
subprojects.each{project ->
if (project.hasProperty('sourceJar')) {
evaluationDependsOn(project.name)
}
}
File altDir = mkdir("$buildDir/alt")
subprojects.each { project ->
if (project.hasProperty('sourceJar')) {
// Extra the module name from the path of the sub-project
String submodule = project.projectDir.absolutePath.split(File.separator).last()
File subfolder = mkdir(altDir.absolutePath + "/${project.group}/${group}.${submodule}/$version")
project.tasks.withType(Jar).each {archiveTask ->
copy {
from archiveTask.archivePath
from("$rootDir") {
include 'license.txt'
include 'notice.txt'
}
into subfolder
}
}
}
}
}