2010-04-08 6 views
6

मेरे पास ग्रहण में तीसरी पार्टी जार पर निर्भरता के साथ एक परियोजना है। मैं चींटी के लिए एक उपयुक्त निर्माण फ़ाइल उत्पन्न करने की कोशिश कर रहा हूं - अंतर्निर्मित निर्यात के रूप में अंतर्निहित निर्यात-> चींटी buildfile सुविधा का उपयोग कर।चींटी बिल्ड क्लासपाथ जार उत्पन्न करता है "ज़िप फ़ाइल खोलने में त्रुटि"

जब मैं निर्माण लक्ष्य मैं निम्नलिखित त्रुटि मिलती है चलाएँ: (एनबी::

[javac] error: error reading /base/repo/FabTrace/lib/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/1.0/geronimo-j2ee-management_1.0_spec-1.0.jar; error in opening zip file 

और सारी निर्माण फ़ाइल (स्वत: जनरेट ग्रहण से) इस तरह दिखता है हमेशा ऊपर त्रुटि को संदर्भित पहले classpath में सूचीबद्ध जार)

<project basedir="." default="build" name="FabTrace"> 
    <property environment="env"/> 
    <property name="ECLIPSE_HOME" value="/opt/apps/eclipse"/> 
    <property name="debuglevel" value="source,lines,vars"/> 
    <property name="target" value="1.5"/> 
    <property name="source" value="1.5"/> 
    <path id="JUnit 4.libraryclasspath"> 
     <pathelement location="${ECLIPSE_HOME}/plugins/org.junit4_4.5.0.v20090824/junit.jar"/> 
     <pathelement location="${ECLIPSE_HOME}/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar"/> 
    </path> 
    <path id="FabTrace.classpath"> 
     <pathelement location="bin"/> 
     <pathelement location="lib/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/1.0/geronimo-j2ee-management_1.0_spec-1.0.jar"/> 
     <pathelement location="lib/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0/geronimo-jms_1.1_spec-1.0.jar"/> 
     <pathelement location="lib/commons-collections/commons-collections/3.2/commons-collections-3.2.jar"/> 
     <pathelement location="lib/commons-io/commons-io/1.4/commons-io-1.4.jar"/> 
     <pathelement location="lib/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/> 
     <pathelement location="lib/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/> 
     <pathelement location="lib/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar"/> 
     <pathelement location="lib/javax/activation/activation/1.1/activation-1.1.jar"/> 
     <pathelement location="lib/javax/jms/jms/1.1/jms-1.1.jar"/> 
     <pathelement location="lib/javax/mail/mail/1.4/mail-1.4.jar"/> 
     <pathelement location="lib/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar"/> 
     <pathelement location="lib/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar"/> 
     <pathelement location="lib/junit/junit/4.4/junit-4.4.jar"/> 
     <pathelement location="lib/log4j/log4j/1.2.15/log4j-1.2.15.jar"/> 
     <pathelement location="lib/apache/camel/camel-jms-2.0-M1.jar"/> 
     <pathelement location="lib/spring/spring-2.5.6.jar"/> 
     <pathelement location="lib/apache/camel/camel-bundle-2.0-M1.jar"/> 
     <pathelement location="lib/backport-util-concurrent/backport-util-concurrent-3.1.jar"/> 
     <pathelement location="lib/commons-pool/commons-pool-1.4.jar"/> 
     <pathelement location="lib/apache/camel/camel-activemq-1.1.0.jar"/> 
     <pathelement location="lib/apache/activemq/activemq-camel-5.2.0.jar"/> 
     <pathelement location="lib/jencks/jencks-2.2-all.jar"/> 
     <pathelement location="lib/jencks/jencks-amqpool-2.2.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/activemq-all-5.3.1.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/optional/xbean-spring-3.6.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/activemq-core-5.3.1.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/camel-jetty-2.2.0.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/web/jetty-6.1.9.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/web/jetty-util-6.1.9.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/web/jetty-xbean-6.1.9.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/optional/activemq-optional-5.3.1.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/web/geronimo-servlet_2.5_spec-1.2.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/optional/spring-beans-2.5.6.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/optional/spring-context-2.5.6.jar"/> 
     <pathelement location="lib/activemq/apache-activemq-5.3.1/lib/optional/spring-core-2.5.6.jar"/> 
     <path refid="JUnit 4.libraryclasspath"/> 
    </path> 
    <target name="init"> 
     <mkdir dir="bin"/> 
     <copy includeemptydirs="false" todir="bin"> 
      <fileset dir="src/main/java"> 
       <exclude name="**/*.launch"/> 
       <exclude name="**/*.java"/> 
      </fileset> 
     </copy> 
     <copy includeemptydirs="false" todir="bin"> 
      <fileset dir="src/test/java"> 
       <exclude name="**/*.launch"/> 
       <exclude name="**/*.java"/> 
      </fileset> 
     </copy> 
     <copy includeemptydirs="false" todir="bin"> 
      <fileset dir="config"> 
       <exclude name="**/*.launch"/> 
       <exclude name="**/*.java"/> 
      </fileset> 
     </copy> 
    </target> 
    <target name="clean"> 
     <delete dir="bin"/> 
    </target> 
    <target depends="clean" name="cleanall"/> 
    <target depends="build-subprojects,build-project" name="build"/> 
    <target name="build-subprojects"/> 
    <target depends="init" name="build-project"> 
     <echo message="${ant.project.name}: ${ant.file}"/> 
     <javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}"> 
      <src path="src/main/java"/> 
      <classpath refid="FabTrace.classpath"/> 
     </javac> 
     <javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}"> 
      <src path="src/test/java"/> 
      <classpath refid="FabTrace.classpath"/> 
     </javac> 
     <javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}"> 
      <src path="config"/> 
      <classpath refid="FabTrace.classpath"/> 
     </javac> 
    </target> 

</project> 

(मैं जानता हूँ कि वहाँ यहाँ में विशिष्ट सामान ग्रहण। लेकिन मैं के साथ या इसके बिना ही परिणाम मिलता है।)

मैंने पुरानी Google खोज की है और सफलता के बिना चारों ओर घूमती है।

मैं पुष्टि कर सकता हूं कि सभी जार वास्तव में मौजूद हैं। मैंने कमांडलाइन से और सुडो के रूप में भी कोशिश की है - एक ही परिणाम।

किसी भी मदद की सराहना की जाएगी।

चीयर्स

+2

क्या जार फ़ाइल मान्य है? क्या आप इसे WinZip या अन्य संपीड़न उपकरण में खोल सकते हैं? – VonC

+0

श्वास। मुझे लगा कि क्योंकि मैंने पहले जार को हटा दिया था जो मूल रूप से इस समस्या का कारण बनता था (मुझे यह भी विश्वास नहीं था कि मुझे वास्तव में उनकी आवश्यकता है) और समस्या सिर्फ अगले जार में चली गई ... ठीक है, जिसने मुझे संदिग्ध बना दिया एक प्रणालीगत गलती का। बाहर निकलता है मैंने वास्तव में क्लासपाथ पर कचरा जार का आदान-प्रदान किया है। किसी बिंदु पर एक डाउनलोड या कुछ खराब हो जाना चाहिए। वैसे भी, सभी अब तय हो गए हैं। चीयर्स –

+0

क्यों अपनी टिप्पणी को उत्तर में नहीं ले जाएं और फिर इसे स्वीकार करें? यह किसी के लिए एक उपयोगी सवाल साबित हो सकता है, लेकिन फिलहाल यह 'अनुत्तरित' के रूप में दिखाता है। –

उत्तर

3

मार्टिन क्लेटन के सुझावों के अनुसार, मेरी पिछली टिप्पणी को उत्तर के रूप में नीचे कॉपी किया गया है।

"श्वास। मुझे लगता है कि क्योंकि मैंने मूल रूप से इस समस्या का कारण बनने वाले पहले जार हटा दिए थे (मुझे यह भी विश्वास नहीं था कि मुझे वास्तव में उनकी आवश्यकता है) और समस्या सिर्फ अगले जार में चली गई .. ठीक है, जिसने मुझे एक व्यवस्थित गलती से संदिग्ध बना दिया। बाहर निकलता है मैंने वास्तव में कक्षा के किनारे कचरा जारों का आउटल किया है। किसी बिंदु पर डाउनलोड या कुछ खराब हो जाना चाहिए। वैसे भी, अब सभी तय हो गए हैं। चीयर्स "

+0

मेरे पास छिपे हुए जार (।! 79 9 74! Google-play-services.jar) का भार था, इस मुद्दे के कारण धन्यवाद! – rob5408

0

वहाँ अपने निर्माण फ़ाइल में प्रतिलिपि बयानों में से किसी में एक <filterset/> है? मैं एक बार एक समस्या में भाग गया जहां मैं <copy> -ing "**/*" और विकास के अंत में मुझे पता चला कि <filterset/><copy> के साथ कैसे उपयोग करें।

एक लंबी कहानी कम करने के लिए, टेक्स्ट प्रतिस्थापन बेकार ढंग से काम करता है, हालांकि किसी भी बाइनरी फ़ाइल, निष्पादन योग्य या .jar जो उस "**/*" पथ में पूरी तरह से नष्ट हो गया था। बाइनरी मोड में फ़ाइलों को खोलने के बजाय, वे टेक्स्ट मोड में खोले जाते हैं, और फिर टेक्स्ट मोड में सहेजे जाते हैं।

यदि आपके पास <filterset/> है, या आपकी बिल्ड फ़ाइल में कहीं भी कुछ भी है, तो <exclude/> किसी भी और सभी बाइनरी फ़ाइलों को सुनिश्चित करें।