eclipse - आइवी एक निर्भरता को हल करने में विफल रहता है, कारण खोजने में असमर्थ




ant ivy (5)

मैकोज़क्स (10.11.6 एल कैपिटन) पर मुझे एक ही समस्या थी। मैंने ब्रू पैकेज मैनेजर के साथ चींटी और आइवी स्थापित की।

एक अतिरिक्त तरीका यह है कि इसे -lib विकल्प का उपयोग करके मैन्युअल रूप से परिभाषित करना है, उदाहरण के लिए:

ant clean compile -lib /usr/local/Cellar/ivy/2.4.0/libexec/ivy-2.4.0.jar 

ivy:retrieve का उपयोग करते समय ivy:retrieve , यह निर्भरता को हल करने में विफल रहता है जिसे डाउनलोड किया जाना चाहिए। आउटपुट इस तरह दिखता है:

Buildfile: C:\Users\Simon\workspace\apollo\build.xml
init:
resolve:

BUILD FAILED
C:\Users\Simon\workspace\apollo\build.xml:42: Problem: failed to create task or type antlib:org.apache.ivy.ant:retrieve
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
No types or tasks have been defined in this namespace yet

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
        -C:\Users\Simon\eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030\lib
        -C:\Users\Simon\.ant\lib
        -a directory added on the command line with the -lib argument


Total time: 348 milliseconds

build.xml का प्रासंगिक खंड ऐसा दिखता है:

  <target name="resolve" depends="init">
    <ivy:retrieve pattern="${lib}/[artifact]-[revision].[ext]" sync="true" />
  </target>

यहां यह भी एक सूची है कि इसे डाउनलोड करना चाहिए ( build.xml )

  <target name="doc" depends="build">
    <javadoc sourcepath="${src}" classpathref="libraries" access="private" destdir="${doc}" windowtitle="Apollo">
      <doclet name="org.jboss.apiviz.APIviz" pathref="libraries">
        <param name="-sourceclasspath" value="${bin}" />
        <param name="-author" />
        <param name="-version" />
        <param name="-use" />
        <param name="-nopackagediagram" />
      </doclet>
      <doctitle><![CDATA[<h1>Apollo</h1>]]></doctitle>
      <link href="http://download.oracle.com/javase/6/docs/api/" />
      <link href="http://docs.jboss.org/netty/3.2/api/" />
      <link href="http://guava-libraries.googlecode.com/svn/trunk/javadoc/" />
      <link href="http://www.junit.org/apidocs/" />
      <link href="http://commons.apache.org/compress/apidocs/" />
      <link href="http://jruby.org/apidocs/" />
    </javadoc>
  </target>

एंट आईवी जार नहीं ढूंढ सकता है। downloaded , निकालने, और ivy-xyzjar को निम्नलिखित स्थानों में से एक में रखा जाना चाहिए:

  • $ ANT_HOME / lib
  • $ HOME / .ant / lib

आईवी सक्षम करना

आइवी को antlib रूप में पैक किया जाता है, इसलिए इसे सक्षम करने के लिए आपको निम्न कार्य करने की आवश्यकता होती है

1) बिल्ड फ़ाइल के शीर्ष पर आईवी नेमस्पेस घोषित करें

<project ..... xmlns:ivy="antlib:org.apache.ivy.ant">

2) चींटी लाइब्रेरी निर्देशिकाओं में से एक में ivy जार शामिल करें

आपका त्रुटि संदेश एंटीलिब्स के लिए संभावित स्थानों में से कुछ को इंगित करता है:

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
        -C:\Users\Simon\eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030\lib
        -C:\Users\Simon\.ant\lib
        -a directory added on the command line with the -lib argument

ध्यान दें:

एंटीलिब की सुंदरता यह है कि आपको taskdef करने की आवश्यकता नहीं है (यह वैकल्पिक है यदि आप एक गैर मानक स्थान में आईवी जार रखना चाहते हैं)

एक बिल्ड बूटस्ट्रैप कैसे करें

भले ही आईवी एक एएनटी उप-प्रोजेक्ट है, कुछ अयोग्य कारणों के लिए आईवी को एएनटी के साथ पैक नहीं किया गया है ....

मैं सामान्य रूप से एक नया वातावरण स्थापित करने के लिए अपनी बिल्ड फ़ाइलों में निम्न लक्ष्य शामिल करता हूं:

<target name="bootstrap" description="Used to install the ivy task jar">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar"/>
</target>

यह मेवेन सेंट्रल से आईवी जार डाउनलोड करता है।

चूंकि अन्य सभी एएनटी कार्यों को बाद में आईवी का उपयोग करके डाउनलोड किया जा सकता है, इसलिए कुछ लोग बिल्ड फ़ाइल के शीर्ष पर कुरूपता के इस छोटे टुकड़े पर ऑब्जेक्ट करते हैं।


जब आप चींटी कार्य चलाते हैं, कक्षा वर्ग में यह सुनिश्चित करता है कि ivy.jar वहां है। ग्रहण में -> चलाएं-> चींटी बिल्ड -> कॉन्फ़िगरेशन संपादित करें -> क्लासपाथ टैब। हालांकि ग्रहण में एंट होम में ivy.jar होगा, किसी कारण से इसे नहीं कहा जाता है।


ant lib ivy jar जोड़ने के बाद भी, इसे उठाया नहीं जा रहा था। ANT_HOME फिर से ANT_HOME का चयन ANT_HOME Preferences->Ant->Runtime ANT_HOME Preferences->Ant->Runtime lib dir को रीफ्रेश करने का कारण बनता है, और आपके द्वारा जोड़े गए किसी भी पुस्तकालय को वहां ले जाया जाता है।


मैंने कभी ईपीएफ संगीतकार का उपयोग नहीं किया है।

मैंने Google खोजों की थोड़ी सी कोशिश की और मैं समझता हूं कि आप जो खोज रहे हैं उसे कॉन्फ़िगरेशन के माध्यम से किया जा सकता है (अपने लाइब्रेरी व्यू में ओपनअप का चयन करें) और प्रकाशित परिभाषाएं प्रकाशित की गई हैं।

इस पीपीटी दस्तावेज़ की स्लाइड 83 और 84 देखें। आपको इसे वहां से ले जाने में सक्षम होना चाहिए।

ग्रहण प्रक्रिया फ्रेमवर्क का परिचय

यदि लिंक काम नहीं करता है, तो मैंने Google पर "ईपीएफ संगीतकार" "मानक श्रेणियां" की खोज की और दस्तावेज़ पहले परिणाम पृष्ठ के नीचे है।

सौभाग्य।





eclipse ant ivy