2013-01-18 32 views
11

वहाँ अपाचे से दो Maven कलाकृतियों में चार डुप्लिकेट वर्ग हैं: commons-beanutils:commons-beanutils:1.8.3 और commons-collections:commons-collections:3.2.1:डुप्लिकेट वर्गों और आम-beanutils

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

इसे किसी और विरूपण साक्ष्य के साथ उनमें से एक को बदलने के लिए से बचने के लिए संभव है यह नकल? मैंने Google की कोशिश की लेकिन मुझे कोई समाधान नहीं मिला। बल्कि परेशान समस्या। इस लेख link यह है पर

उत्तर

14

को यह पर नज़र इस मामले में उपयोग करने के लिए कहता है, समस्या maven या बहिष्करण नहीं है (जो आम तौर पर मुद्दा है) लेकिन आप बीनटिल के गलत संस्करण का उपयोग कर रहे हैं।

बीन्यूटिल्स जार का एक संस्करण है जिसमें बीन संग्रह शामिल हैं और ऐसा नहीं है। बीन संग्रह के साथ मूंगफली के लिए मेवेन निर्भरता में कॉमन्स संग्रह शामिल हैं। यदि आप कॉमन्स संग्रह स्वयं का उपयोग कर रहे हैं, तो मुख्य संस्करण का उपयोग करें और मेवेन निर्भरताओं में कॉमन्स संग्रह शामिल करें। http://commons.apache.org/beanutils/

कि पेज का कहना है यह:

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

स्थिति बीनटिल के साथ बदल गई है 1.9: कॉमन्स-बीन्यूटिल्स-कोर और कॉमन्स-बीनटिल्स-बीन-संग्रह अब जारी नहीं किए जा रहे हैं। इसके बजाए, अपमानजनक वर्गों को कॉमन्स-बीन्यूटिल्स.जर से हटा दिया गया है। तो बस सुनिश्चित करें कि आपके कॉमन्स-बीनटिल्स अद्यतित हैं। – seanf

+1

इसके विपरीत - कॉमन्स-बीनटिल्स-बीन-संग्रह वह जार है जिसे आप ढूंढ रहे हैं। अपमानजनक कक्षाओं से मुक्त – Vaiden

1

देखो टैग को बाहर

अद्यतन

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

शायद आप यह भी जानते हैं कि जार से विशिष्ट वर्गों को कैसे बाहर रखा जाए? :) बहिष्कार मदद नहीं करता है क्योंकि इन चार वर्गों में इन चार वर्गों में एकमात्र कक्षाएं नहीं हैं – yegor256

+0

मैवेन विशिष्ट वर्गों को छोड़ने की अनुमति नहीं देगा - केवल विशिष्ट पारगमन निर्भरता जो आमतौर पर पूरे जार होंगे। –

-2

मिटा beanutils जार से संग्रह पैकेज, यह मेरे लिए काम किया :)

यह जहां यह थोड़ा समझाया गया है है