2015-04-20 16 views
6

Maven projesi ile çalışıyorum ve iki projem var, ProjectA ve ProjectB. PartialKernelspring-web, spring-core gibi çeşitli Bahar Çerçeve bağımlılıkları eski sürümünü getiriyor, benim yukarıdaki pom olarakMaven bağımlılığının eski sürümleri nasıl hariç tutulur ve yeni sürümü nasıl kullanılır?

<?xml version="1.0" encoding="UTF-8"?> 
<project 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.texture.partial</groupId> 
     <artifactId>PartialPlatform</artifactId> 
     <version>2.1.5-RELEASE</version> 
    </parent> 

    <groupId>com.texture.transform.golden</groupId> 
    <artifactId>SampleClient</artifactId> 
    <version>1.0.4</version> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.partial.core</groupId> 
      <artifactId>PartialKernel</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.webres</groupId> 
      <artifactId>WebResPartial</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.kernel</groupId> 
      <artifactId>TextureServer</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.kernel</groupId> 
      <artifactId>Kernel</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.v3jars.Houston</groupId> 
      <artifactId>KernelDAL</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.kernel</groupId> 
      <artifactId>uKernel</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.kernel</groupId> 
      <artifactId>uKernelCore</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-asm</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-expression</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>aopalliance</groupId> 
      <artifactId>aopalliance</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.servicemix.bundles</groupId> 
      <artifactId>org.apache.servicemix.bundles.cglib</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.partial.core</groupId> 
      <artifactId>ConfigWeb</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.texture.partial.core</groupId> 
      <artifactId>PartialWeb</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.jmockit</groupId> 
      <artifactId>jmockit</artifactId> 
      <version>1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <argLine>-javaagent:"${settings.localRepository}"/com/googlecode/jmockit/jmockit/1.7/jmockit-1.7.jar</argLine> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <configuration> 
        <instrumentation> 
         <excludes> 
          <exclude>**/test/**/*.class</exclude> 
         </excludes> 
        </instrumentation> 
        <formats> 
         <format>xml</format> 
         <format>html</format> 
        </formats> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

: My ProjectA bir maven kimin pom şuna benzer kütüphanesidir. 3.2.8.RELEASE sürümünü getiriyor ve bu iki bahar çerçevesinin en son sürümünü kullanmak istiyorum, 4.1.6.RELEASE. spring-core ve spring-web'un eski sürümlerini PartialKernel'dan gelen ve en son sürümü kullanmanın doğru yolu nedir?

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.1.6.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.1.6.RELEASE</version> 
    </dependency> 

Bazı sınıflar yalnızca en son sürümlerde bulunduğundan son sürüme ihtiyacım var.

+0

:

Şimdi üst düzey pom dependency management bölümünde kullanmak istediğiniz spring-core sürümünü tanımlamak bunları otomatik olarak kullanmalıdır. Şüpheniz varsa, üst düzey pom.xml'niz kazanır. – Thilo

+0

İki yay versiyonunun gerçekten uyumlu olduğundan emin misiniz? – Thilo

cevap

7

Bir bağımlılığın gerektirdiği ve kullanmak istediğiniz kütüphane sürümü arasında uyumsuzluklar olabilir. Bu riski almaktan memnunsanız, geçişli bağımlılıkları yok saymak için maven exclusions'u kullanabilirsiniz.

Örneğin, PartialKernel tarafından getirilen olmaktan spring-core ekleyerek, hariç tutabilirsiniz: Eğer bahar bağımlılıkları getiriyor her bağımlılık için bunu yapmak zorunda kalacaktır

<dependency> 
    <groupId>com.texture.partial.core</groupId> 
    <artifactId>PartialKernel</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

Not. , Kendi projede yer alan pom.xml hiçbirinde aynı eser daha yeni bir sürümünü belirtirseniz

<dependencyManagement> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.1.6.RELEASE</version> 
    </dependency> 
</dependencyManagement> 
+0

, bağımlılık uyumsuzluğu hatalarını gidermek için istisnaları yapmanız gerekir. – krock

İlgili konular