2017-01-27 1 views
0

Ich migrieren alles auf Spring-Boot-Version 1.4.3.RELEASE.Mit Spring-Boot, wie Modul aus Feder-Daten-Release-Zug auszuschließen

Vor der Migration verwendete ich bereits die Version 2.1.0.RELEASE von spring-data-solr. i

Nach der Einführung des Frühlings Booten gestartet einige Fehler zu bemerken, Methoden fehlt etc ...

Also habe ich einige graben und fand, dass im Frühjahr Boot-Abhängigkeiten, Feder-data-releasetrain verwendet ältere Version von Feder-Daten -solr als die Version, die für mich obligatorisch ist.

Ich habe versucht, Abhängigkeit mit der Version in meiner pom.xml, ohne Glück neu zu deklarieren.

Was ist seltsam, dass, wenn ich meine Build-Pfad unter den Maven Abhängigkeiten überprüfen, ist die Abhängigkeit für Frühling-Data-Solr Version 2.1.0.RELEASE richtig. Das verursacht keine Kompilierzeitprobleme, dies geschieht nur zur Laufzeit ...

Ich habe mich gefragt, ob ich Spring-Data-Solr einfach ausschließen und meine eigenen importieren kann? oder gibt es einen besseren Weg, das zu bewältigen?

Antwort

0

Ja, Sie können die unerwünschten Versionen ausschließen und Ihre eigenen importieren. Dies ist jedoch nur sinnvoll, wenn Ihre Version von spring-data-solr mit der von Ihnen verwendeten Spring-Boot-Version sowohl zur Kompilierzeit als auch zur Laufzeit kompatibel ist.

Der einfachste Weg, dies zu tun, ist die gewünschte Version im Abschnitt dependencyManagement Ihres Pom zu deklarieren. Siehe introduction-to-dependency-mechanism

Abhängigkeitsmanagement Vorrang vor Abhängigkeits Vermittlung für transitive Abhängigkeiten nimmt

Das heißt, die Version, die Sie in Abhängigkeitsmanagement erklären sollte die Versionen von transitiven Abhängigkeiten außer Kraft setzen.

Ich hatte Sternbilder, wo dies nicht ausreichte und ich immer noch die unerwünschte Version in meinem Klassenpfad fand. In diesem Fall müssen Sie diese unerwünschte Abhängigkeit ausschließen.

In Maven sieht ein Ausschluss wie folgt aus:

  <dependency> 
      <groupId>org.springframework.security.oauth</groupId> 
      <artifactId>spring-security-oauth2</artifactId> 
      <version>2.0.7.RELEASE</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

In dem obigen Code I feder Bohnen bin ohne, so dass es nicht in der unerwünschte Version erforderlich durch federsicherheits oauth2 eingeführt. Das müssen Sie für alle Abhängigkeiten tun, die Ihr Feder-Daten-Solr irgendwie in einer unerwünschten Version einreißen.

Ihr bester Freund, wenn dies zu tun ist

mvn dependency:tree -Dverbose -Dincludes=org.springframework.data:spring-data-solr 

, die genau zeigt, was Ihr Projekt Abhängigkeiten hat bis zum Frühjahr-data-solr und warum sie dort sind. Siehe Maven for details

So machen Sie MVN Abhängigkeit: Baum, fügen Sie Ausschluss und wiederholen, bis Sie keine Abhängigkeit von der unerwünschten Version mehr haben.

Als schließlich fügen Sie einmal die Abhängigkeit der gewünschten Version hinzu.

+0

Vielen Dank für Ihre Antwort, zum Glück hat Frühling 1 veröffentlicht.5 Version in den letzten Tagen.Es hat die richtige Version von solr, die ich brauche. es ist eine saubere Lösung für mich. Ich markiere deine Antwort immer noch als richtig – zalis

Verwandte Themen