Wie kann verhindert werden, dass „maven-metadata.xml“ bei jedem Build in der Gradle Maven-Veröffentlichung aktualisiert
Posted: 24 Dec 2024, 07:14
Ich arbeite an einem Gradle-Projekt, in dem ich Artefakte mithilfe der Maven-Veröffentlichung in einem JFrog Artifactory-Repository veröffentliche (dieses Repository ist ein generisches Repository, kein Maven-Repository). Allerdings stehe ich vor einem Problem, bei dem die Datei maven-metadata.xml im Repository bei jedem Build aktualisiert wird, was dazu führt, dass die neueste Version immer den aktuellsten Build widerspiegelt, unabhängig davon, ob es sich um einen Release-Build oder eine Entwicklung handelt Build oder Feature Branch Build.
Ich möchte sicherstellen, dass nur stabile Release-Builds die neueste Version in maven-metadata.xml aktualisieren. Entwicklungs- und Feature-Branch-Builds sollten keine Auswirkungen darauf haben.
Das habe ich bisher versucht, aber keines davon hat funktioniert:
publishing {
repositories {
maven {
url = uri("artifactory-url")
credentials(PasswordCredentials::class)
}
}
publications {
create("mavenCatalog") {
from(components["java"])
}
}
}
Gibt es etwas, das ich übersehe oder falsch mache?
Ich möchte sicherstellen, dass nur stabile Release-Builds die neueste Version in maven-metadata.xml aktualisieren. Entwicklungs- und Feature-Branch-Builds sollten keine Auswirkungen darauf haben.
Das habe ich bisher versucht, aber keines davon hat funktioniert:
- < li>Verwendung von Snapshot-Versionen:
Ich habe -SNAPSHOT zur Version für Nicht-Release-Builds hinzugefügt, in der Hoffnung, dass das Repository sie anders behandeln würde:
gradle -Pversion=1.0.0-SNAPSHOT publish - Deaktivieren der GenerateModuleMetadata-Aufgabe:
Ich habe auch versucht, die genericMetadataFileForMavenCatalogPublication zu überspringen-Aufgabe durch Deaktivieren während der Entwicklungs-Builds:
tasks.named("generateMetadataFileForMavenCatalogPublication") {
enabled = project.findProperty("buildType") != "dev"
} - Alle GenerateModuleMetadata-Aufgaben überspringen:
Als nächstes habe ich alle Aufgaben dieses Typs übersprungen GenerateModuleMetadata, um sicherzustellen, dass keine Metadatendateien generiert werden:
tasks.withType {
enabled = project.findProperty("buildType") != "dev"
} - Hinzufügen von Skip-Metadaten zur Artifactory-URL:
Ich habe auch versucht, Skip-Metadaten an die anzuhängen Artifactory-URL, wie in einigen Referenzen vorgeschlagen.
publishing {
repositories {
maven {
url = uri("artifactory-url")
credentials(PasswordCredentials::class)
}
}
publications {
create("mavenCatalog") {
from(components["java"])
}
}
}
Gibt es etwas, das ich übersehe oder falsch mache?