2016-09-27 5 views
1

Ich versuche, die Spring Boot-Anwendung zu erstellen, die Submodul des übergeordneten Pom unseres Projekts ist (das hängt von unserem internen Framework ab, das Federabhängigkeit Versionen absperrt - ab jetzt sind wir bei 4.2.4-RELEASE)Aktuell Spring Boot Version in Submodul & verschiedene Spring Version in Eltern

Wenn ich die neueste Frühlings-Boot-Version (1.4.1-RELEASE) angeben, die 4.3.3-RELEASE auf Feder hängt, ich bin vor Konflikten

Einer von ihnen ist folgender Fehler:

Caused by: java.lang.NoClassDefFoundError: 
org/springframework/beans/factory/ObjectProvider 

Th Ist Klasse in 4.3 eingeführt, die diesen Fehler erläutert

Gibt es eine Möglichkeit, wie meine Spring Boot-Abhängigkeiten auf dem neuesten Stand zu halten, ohne Spring-Versionen im internen Framework zu aktualisieren?

+0

Ich bin unter dem Eindruck, es ist irgendwie dumme Frage, aber ich dachte, jemand wird mir Führung geben :) –

+1

Ich schlage vor, Sie starten Debugging (z. B. mit 'mvn Abhängigkeit: Baum') und finden Sie heraus, was Sie falsch gemacht haben. – OrangeDog

+0

Ja, ich habe die Abhängigkeit verwendet: tree & fand, dass die Spring-Versionen der transitiven Abhängigkeiten von Boot wegen Duplikaten aus dem internen Framework weggelassen wurden. Ich bin mir aber nicht sicher, ob ich die Version der transitiven Abhängigkeiten von Spring-Boot selbst überschreiben kann. –

Antwort

0

Sie sollten alle Spring-Abhängigkeiten synchronisieren, indem Sie spring-boot-starter-parent Ihre Eltern machen.

Das richtet alle <dependencyManagement> für Sie ein, und Sie sollten dann nicht <version> verwenden, wenn Sie bestimmte Abhängigkeiten abrufen.

Wenn Sie eine vom Parent verwaltete Version überschreiben müssen, sollte eine Eigenschaft vorhanden sein, die Sie ändern können, z. logback.version, spring-security.version usw.

Sie auch eine Ihrer Abhängigkeiten von Überschreiben der Versionen ihrer Abhängigkeiten stoppen <excludes> mithilfe der transitive Abhängigkeit ganz zu entfernen und sicherzustellen, dass Sie es ziehen in von anderswo. Dies ist jedoch viel spröder.

Sie könnten auch versuchen, spring-boot-dependencies in Ihre dependencyManagement importieren, aber Sie machen wahrscheinlich mehr Arbeit für sich selbst versuchen, Ihre vorhandenen Projekte als Eltern des Boot-Projekts, anstatt als Abhängigkeiten hinzufügen.

Verwandte Themen