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}"
    })
}

Articles connexes


Utilisation de deux sources de données dans Spring Boot

Jean Cedron J'utilise Spring Boot 1.3.3dans mon projet avec une base de données, maintenant je veux utiliser deux bases de données avec le même schéma mais des connexions différentes . Je veux utiliser les mêmes référentiels, entités et trouver le moyen de dir

Emballage de bocal dans Spring Boot

Minuscule Je crée un projet multi-module Spring Boot. Le module A a une dépendance sur le module B .. Le module A fonctionne bien lorsque je cours sous une forme éclatée. mvn spring-boot:run Mais je ne peux pas empaqueter le jar avec les dépendances