2013-01-18 16 views
11

Apache'den iki Maven eserler dört yinelenen sınıfı vardır: commons-beanutils:commons-beanutils:1.8.3 ve commons-collections:commons-collections:3.2.1:yinelenen commons-koleksiyonlarında sınıflar ve commons-beanutils

org.apache.commons.collections.ArrayStack 
org.apache.commons.collections.Buffer 
org.apache.commons.collections.BufferUnderflowException 
org.apache.commons.collections.FastHashMap 

o önlemek için bazı diğer objeyle bunlardan birini yerine mümkün mü Bu çoğaltma? Google'a çalıştım ama herhangi bir çözüm bulamadım. Daha çok can sıkıcı bir problem. öyle bu makalede link de

cevap

14

için şuna

GÜNCELLEME

göz dışlamak kullanmak, sorun maven veya dışlamaları değildir söyler (ki bu genellikle sorun), ancak muhtemelen büyük olasılıkla fasulyenin yanlış sürümünü kullanıyorsunuz.

Beanutils kavanozunun, fasulye koleksiyonları içeren ve bulunmayan bir sürümü var. Fasulye koleksiyonları ile fasulye için maven bağımlılıkları ortak koleksiyonları içerir. Ortak koleksiyonları kendiniz kullanıyorsanız, maven bağımlılıklarındaki çekirdek sürümlerini ve ortak koleksiyonları kullanın. o benim için çalıştı,

commons-beanutils.jar - contains everything 
commons-beanutils-core.jar - excludes Bean Collections classes 
commons-beanutils-bean-collections.jar - only Bean Collections classes 

The main commons-beanutils.jar has an optional dependency on Commons Collections 
+1

Durum, fasulye unu ile değişti 1.9: commons-beanutils-core ve commons-beanutils-bean-collections artık serbest bırakıldı. Bunun yerine, rahatsız edici sınıflar commons-beanutils.jar'den kaldırıldı. Bu yüzden, müşterek-fasulyelerin güncel olduğundan emin ol. – seanf

+1

Tam tersi - fasulye-fasulye-fasulye-koleksiyonları, aradığınız kavanozdur. Rahatsız edici sınıflardan kurtul – Vaiden

1

Bak Bu durumda etiketini link2

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.0</version> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <artifactSet> 
       <excludes> 
        <exclude>classworlds:classworlds</exclude> 
        <exclude>junit:junit</exclude> 
        <exclude>jmock:*</exclude> 
        <exclude>*:xml-apis</exclude> 
        <exclude>org.apache.maven:lib:tests</exclude> 
        <exclude>log4j:log4j:jar:</exclude> 
       </excludes> 
       </artifactSet> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
+0

Belki de belirli sınıfları JAR'den nasıl hariç tutacağınızı biliyor musunuz? :) Dışlama, bu dört sınıfın bu JAR'lardaki tek sınıflar olmadığından yardımcı olmaz. – yegor256

+0

Maven, belirli sınıfları hariç tutmaya izin vermez - yalnızca tüm kavanozlar olacak özel geçiş bağımlılıkları. –

İlgili konular