2017-02-20 3 views
0

Ich arbeite mit Spring-Boot und möchte zwei verschiedene Versionen von spring-web in mein Projekt aufnehmen, da eine der APIs in der neuesten Version veraltet ist. Um dies weiter zu verwenden, habe ich zwei Abhängigkeiten von spring-web mit verschiedenen Versionen eingeschlossen, aber Eclipse erkennt nur von ihnen.Mehrere Federabhängigkeiten verschiedener Versionen

Ich habe versucht, fast alles aus der älteren Version von Spring-Web ausschließen, aber das scheint auch nicht zu funktionieren - aus irgendeinem Grund bitte?

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <exclusions> 
      <exclusion> 
       <groupId>aopalliance</groupId> 
       <artifactId>aopalliance</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>axis</groupId> 
       <artifactId>axis</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.caucho</groupId> 
       <artifactId>com.springsource.com.caucho</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>commons-fileupload</groupId> 
       <artifactId>commons-fileupload</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.el</groupId> 
       <artifactId>el-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.faces</groupId> 
       <artifactId>jsf-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.xml</groupId> 
       <artifactId>jaxrpc-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.xml.ws</groupId> 
       <artifactId>jaxws-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.codehaus.jackson</groupId> 
       <artifactId>jackson-mapper-asl</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-aop</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-beans</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-context</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-core</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-oxm</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.portlet</groupId> 
       <artifactId>portlet-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
+1

Sie können sich nicht auf mehrere Versionen derselben Abhängigkeit verlassen. Das macht keinen Sinn. Woher willst du wissen, welches benutzt werden soll? – Tome

Antwort

0

Sie werden nicht in der Lage sein, zwei verschiedene Versionen einer Abhängigkeit in Ihrem Projekt wegen eines Maven-Konzept namens ‚D ependency Mediation‘. Schauen Sie sich die Maven Introduction to the Dependency Mechanism Dokumentation an.

Abhängigkeitsvermittlung - bestimmt, welche Version einer Abhängigkeit verwendet wird, wenn mehrere Versionen eines Artefakts auftreten. Momentan unterstützt Maven 2.0 nur die "nächste Definition" , was bedeutet, dass es die Version der nächsten Abhängigkeit zu Ihr Projekt in der Struktur der Abhängigkeiten verwendet. Sie können immer eine Version garantieren, indem Sie sie explizit in Ihrem Projekt POM deklarieren. Beachten Sie, dass, wenn zwei Abhängigkeitsversionen in der Dependency-Struktur die gleiche Tiefe haben, bis Maven 2.0.8 wurde nicht definiert, welche gewinnen würde, aber seitMaven 2.0.9 ist es die Reihenfolge in der Deklaration, die zählt: die erste Erklärung gewinnt.

+0

Danke @FrVaBe. – Bhaskar

Verwandte Themen