2010-09-14 13 views
5

मैवेन अक्ष-1.3.jar और अक्ष-1.4.jar दोनों को मेरे युद्ध के वेब-आईएनएफ/lib में डालता है। क्या कोई यह बता सकता है कि इसे केवल अक्ष-1.4.jar का उपयोग करने के लिए कैसे बताना है?मैवेन उसी जार के दो संस्करणों के साथ युद्ध करता है

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <parent> 
     <groupId>dummy</groupId> 
     <artifactId>test-war</artifactId> 
     <version>0.1</version> 
    </parent> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>dummy</groupId> 
    <artifactId>war-part2</artifactId> 
    <name>war-part1</name> 
    <version>0.1</version> 
    <packaging>war</packaging> 

    <dependencies> 
    <dependency> 
     <groupId>org.apache.axis</groupId> 
     <artifactId>axis</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>com.jaspersoft.jasperserver</groupId> 
     <artifactId>jasperserver-ireport-plugin</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
    </dependencies> 
</project> 

[निर्भरता: पेड़ {निष्पादन: डिफ़ॉल्ट-CLI}]

+- org.apache.axis:axis:jar:1.4:compile 
\- com.jaspersoft.jasperserver:jasperserver-ireport-plugin:jar:2.0.1:compile 
    +- javax.activation:activation:jar:1.1:compile 
    +- javax.mail:mail:jar:1.4:compile 
    +- log4j:log4j:jar:1.2.12:compile 
    \- com.jaspersoft.jasperserver:jasperserver-common-ws:jar:2.0.1:compile 
     +- xerces:xercesImpl:jar:2.8.1:compile 
     | \- xml-apis:xml-apis:jar:1.3.03:compile 
     \- axis:axis:jar:1.3:compile 
     +- axis:axis-jaxrpc:jar:1.3:compile 
     +- axis:axis-saaj:jar:1.3:compile 
     +- wsdl4j:wsdl4j:jar:1.5.1:compile 
     +- commons-logging:commons-logging:jar:1.0.4:compile 
     \- commons-discovery:commons-discovery:jar:0.2:compile 

Maven 2.2.1

उत्तर

6

आप अपने निर्भरता में कुछ निर्भर पुस्तकालयों को बाहर कर सकते है:

<dependency> 
    <groupId>com.jaspersoft.jasperserver</groupId> 
    <artifactId>jasperserver-ireport-plugin</artifactId> 
    <version>2.0.1</version> 
    <exclusions> 
    <exclusion> 
     <groupId>axis</groupId> 
     <artifactId>axis</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

तब मेवेन इस निर्भरता को छोड़ देगा।

आपको यह सुनिश्चित करना होगा कि जैस्पर आपके द्वारा प्रदान की जाने वाली लाइब्रेरी में आवश्यक कक्षाएं पा सकता है।

+0

+1 वास्तविक समाधान –

4

यह हर समय काम पर आता है और 90% समय किसी के कारण होता है (or Eclipse's WTP) WEB-INF/lib में जार की एक प्रति डालकर और फिर इसे संस्करण नियंत्रण में जांचता है।

आप इसे देखना चाहेंगे।

+0

के लिए यह मेरे लिए जवाब था किया था ! धन्यवाद! –

+0

इसके अलावा मेरे लिए सही जवाब! –

8

सिद्धांत रूप में, मैवेन निर्भरता या पारगमन निर्भरताओं में मौजूद एक आर्टिफैक्ट के संस्करण के अभिसरण को संभालना चाहिए। यहां समस्या यह है कि axis-1.4.jar और axis-1.3.jarके पास groupId (org.apache.axis बनाम axis) इसलिए मैवेन उन्हें अलग-अलग कलाकृतियों के रूप में देखते हैं और उन्हें दोनों शामिल करते हैं।

आप axis-1.3.jar लेकिन केवल axis-1.4.jar पाने के लिए नहीं करना चाहते हैं, तो आप स्पष्ट रूप से उपयोग कर रहा jasperserver-ireport-plugin निर्भरता से अवांछित बाहर करने के लिए होगा एक exclusion:

<dependency> 
    <groupId>com.jaspersoft.jasperserver</groupId> 
    <artifactId>jasperserver-ireport-plugin</artifactId> 
    <version>2.0.1</version> 
    <exclusions> 
    <exclusion> 
     <groupId>axis</groupId> 
     <artifactId>axis</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

कह नहीं सकते अगर jasperserver-ireport-plugin के साथ काम करेंगे हालांकि axis-1.4.jar हालांकि।

0

FWIW मैं कुछ घंटों के लिए Maven पर पीटने किया गया है क्योंकि मेरे युद्ध इसमें उतना ही जार के अन्य संस्करणों था - जब एक पुनरावर्ती को नष्ट कर रही है हमेशा सावधानी बरतें, लेकिन यह क्या यह अंत में मंजूरी दे दी निर्भर है

rm -fR ~/.m2/repository 
mvn -U clean package 

कुछ मेरी रेपो में निराला था, लेकिन जो भी हो यह वापस आ रहा रखा जब तक मैं बल अद्यतन यू

आशा इस मदद करता है किसी को

+0

मेरे लिए काम नहीं किया –

संबंधित मुद्दे