मैं आइवी के लिए बिल्कुल नया हूं, लेकिन इसे जार निर्भरताओं के साथ काम करने के लिए मिला है। समस्या इसे स्थापित करने की कोशिश कर रही है, इसलिए मैं जवाडॉक्स और स्रोतों को स्वतंत्र रूप से जार से ला सकता हूं।आइवी: जावडॉक्स और स्रोत प्राप्त करना
मेरे पास एक साधारण परीक्षण परियोजना है, लेकिन इससे कोई फर्क नहीं पड़ता कि मैं क्या कर रहा हूं, मैं इसमें कक्षा फाइलों के साथ जार ला रहा हूं।
<ivy-module version="1.0">
<info
organisation="com.vegicorp"
module="test"
revision="1.0"
status="release"/>
<configurations>
<conf name="default" visibility="public" extends="runtime,master"/>
<conf name="master" visibility="public"/>
<conf name="compile" visibility="public"/>
<conf name="provided" visibility="public"/>
<conf name="runtime" visibility="public" extends="compile"/>
<conf name="test" visibility="private" extends="runtime"/>
<conf name="system" visibility="public"/>
<conf name="sources" visibility="public"/>
<conf name="javadoc" visibility="public"/>
<conf name="optional" visibility="public"/>
</configurations>
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="compile->default"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="sources->default">
<artifact name="commons-logging" type="sources" ext="jar"/>
</dependency>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="javadoc->default">
<artifact name="commons-logging" type="javadoc" ext="jar"/>
</dependency>
</dependencies>
</ivy-module>
और निम्नलिखित build.xml
:
मैं निम्नलिखित ivy.xml
फ़ाइल है
<project name="ivy-test" default="default" basedir="."
xmlns:ivy="http://ant.apache.org/ivy">
<property name="ivy.dir" value="${basedir}/ivy.dir"/>
<import file="${ivy.dir}/ivy.tasks.xml"/>
<property name="target.dir" value="${basedir}/lib"/>
<target name="-resolve">
<ivy:resolve/>
</target>
<target name="clean">
<delete dir="${target.dir}"/>
<ivy:cleancache/>
</target>
<target name="default"
depends="-resolve">
<fail message="ivy.conf is not defined">
<condition>
<not>
<isset property="ivy.conf"/>
</not>
</condition>
</fail>
<delete dir="${target.dir}"/>
<mkdir dir="${target.dir}"/>
<ivy:retrieve conf="${ivy.conf}"
pattern="${target.dir}/[artifact]-[revision].[ext]"/>
</target>
</project>
कमांड लाइन में, मैं टाइप करेंगे:
$ ant -Divy.conf=compile
और, कि कक्षाओं के साथ jarfile डाउनलोड करना चाहिए।
लेकिन अगर मैं इसे इस टाइप करें:
$ ant -Divy.conf=sources
मुझे लगता है कि स्रोतों और नहीं कक्षाएं शामिल जार फ़ाइल चाहते हैं, और जब मैं इस टाइप करें:
$ ant -Divy.conf=javadoc
मैं जार फ़ाइल चाहते हैं जिसमें javadoc शामिल है और स्रोत नहीं।
मुझे पूरा यकीन है कि यह मेरा ivy.xml
है जो बिल्कुल सही नहीं है। मैं मूल रूप से करने की कोशिश की इस:
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1">
<artifact name="commons-logging" type="jar" ext="jar" conf="compile->default"/>
<artifact name="commons-logging" type="sources" ext="jar" conf="sources->default"/>
<artifact name="commons-logging" type="javadoc" ext="jar" conf="javadoc->default"/>
</dependency>
कि एक बार कोई बात नहीं जो विन्यास मैंने कोशिश की पर जार, स्रोत और जावाडोक, लेकिन सभी डाउनलोड किया।
conf = "javadoc, स्रोत, संकलन" भी काम करना चाहिए। – oers
मुझे पता चला कि अगर मैं डिफ़ॉल्ट रूप से अपनी कॉन्फ़िगरेशन मैप नहीं करता हूं, तो मुझे यह सबकुछ मिलता है कि मैं इसे चाहता हूं या नहीं। आपके उदाहरण में, अगर मैंने कहा ' 'पुनर्प्राप्त करें, मुझे जार, जावाडोक और स्रोत मिलेंगे। उस मामले में, मैं केवल कक्षा जार चाहता हूँ। अगर मैं कहता हूं ' ' पुनर्प्राप्त करें 'मैं केवल जावाडोक चाहता हूं। –
हाँ सही :) मैं भूल गया कि डिफ़ॉल्ट एक सिंगल के लिए मेवेन स्कोप है। तो इसे conf = "javadoc; स्रोत; संकलित-> डिफ़ॉल्ट" के लिए छोटा किया जा सकता है। मुझे लगता है। – oers