Dépendances placées deux fois dans le bocal Spring Boot (> 2.x) lors de l'utilisation de Gradle
Mathias a tenu
l'ajout du SDK Cloud comme celui-ci pour CF: compile "com.sap.cloud.s4hana:s4hana-all:${cloudSDKVersion}" compile ("com.sap.cloud.s4hana.cloudplatform:scp-cf:${cloudSDKVersion}")
conduit à des fichiers JAR dupliqués dans le fichier Spring Boot qui est déployé sur CF. exemples: core-2.3.1.jar connectivity-2.3.1.jar
- Cela mène à :
- ClassNotFoundExceptions pendant l'exécution
- empêche les commandes push cf avec erreur:
Comparing local files to remote cache... Aborting push: File BOOT-INF/lib/core-2.3.1.jar has been modified since the start of push. Validate the correct state of the file and try again. FAILED
Mathias a tenu
gradle ignore le nom du composant lors de la construction du package de démarrage.
Après quelques recherches sur Google, c'était la solution: https://github.com/spring-projects/spring-boot/issues/10778
bootJar {
rootSpec.filesMatching('**/*.jar', { jar ->
String groupId = jar.file.parentFile.parentFile.parentFile.parentFile.name
jar.name = "$groupId-${jar.name}"
})
}