Je ne peux plus démarrer mon application Spring Boot après l'ajout de la persistance. L'erreur est:Dépendances de source incompatibles (NoSuchMethodError lorsque le constructeur AnnotationRepositoryConfigurationSource est appelé)
java.lang.NoSuchMethodError: org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.<init>(Lorg/springframework/core/type/AnnotationMetadata;Ljava/lang/Class;Lorg/springframework/core/io/ResourceLoader;Lorg/springframework/core/env/Environment;Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
at org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport$1.<init>(AbstractRepositoryConfigurationSourceSupport.java:68) ~[spring-boot-autoconfigure-1.5.7.RELEASE.jar:1.5.7.RELEASE]
Je suivis cette baisse aux changements dans printemps-données-communes où AnnotationRepositoryConfigurationSource et un argument réside constructeur supplémentaire a été ajouté dans la version 1.13.5, et la version 1.13.7 avec la même signature de constructeur doit être utilisée par spring-boot-starter-data-jpa dans la version 1.5.7. Et nous utilisons uniquement les dépendances Spring Boot avec le numéro de version 1.5.7.
Alors je construit l'arbre de dépendance et étrangement trouvé printemps-données-communes dans la version 1.13.4, 1.13.7 pas (troisième à la dernière ligne):
...(snippet)
[INFO] +- com.name.project:project-subproject8:jar:1.0.0-SNAPSHOT:compile
[INFO] | \- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.7.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.4.RELEASE:compile
[INFO] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.15:compile
[INFO] | | | \- org.apache.tomcat:tomcat-juli:jar:8.5.15:compile
[INFO] | | \- org.springframework:spring-jdbc:jar:4.3.9.RELEASE:compile
[INFO] | +- org.hibernate:hibernate-core:jar:5.0.12.Final:compile
[INFO] | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | | +- antlr:antlr:jar:2.7.7:compile
[INFO] | | +- org.jboss:jandex:jar:2.0.0.Final:compile
[INFO] | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] | +- org.hibernate:hibernate-entitymanager:jar:5.0.12.Final:compile
[INFO] | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[INFO] | +- org.springframework.data:spring-data-jpa:jar:1.11.4.RELEASE:compile
[INFO] | | +- org.springframework.data:spring-data-commons:jar:1.13.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-orm:jar:4.3.9.RELEASE:compile
[INFO] | \- org.springframework:spring-aspects:jar:4.3.9.RELEASE:compile
...
En remontant l'arbre vous peut voir que spring-data-jpa est inclus dans la version 1.11.4, alors que, selon Spring Boot Dependency Appendix, il devrait être la version 1.11.7. Cela semble provoquer l'erreur. Mais nous ne dépendons pas de spring-data-jpa directement via nos fichiers pom. Donc, je ne sais pas comment cette ancienne version est entrée dans l'arbre des dépendances. Le pom de spring-boot-starter-data-jpa n'indique aucun numéro de version.
Avez-vous déjà essayé de résoudre ce problème avec des exclusions ou avec la gestion des dépendances? – pirho
Bien sûr, les exclusions et l'ajout explicite des versions d'artefacts nécessaires sont utiles. Mais cela ne fait que combattre les symptômes. – JustCode
pouvez-vous attacher des parties de depency de votre pom? – pirho