java - बिल्डिंग जार जिसमें सभी निर्भरताएं शामिल हैं




ant jar (4)

यह संभवत: एक मौलिक प्रश्न है, लेकिन मुझे डर है कि मुझे जावा के बारे में ज्यादा जानकारी नहीं है और मुझे जवाब कहीं भी नहीं मिला।

मैं चींटी पुस्तकालय का निर्माण करने का प्रयास कर रहा हूं जो टीएफएस एसडीके पर निर्भर करता है। मैंने एक प्रोजेक्ट की स्थापना के लिए गाइड का अनुसरण किया, लेकिन जब मैं इसे एक जार के रूप में निर्यात करता हूं और एएनटी का उपयोग करके एक कार्य चलाने की कोशिश करता हूं तो मुझे निम्न त्रुटि मिलती है:

java.lang.NoClassDefFoundError: /com/microsoft/tfs/core/util/TFSUser

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

यह उत्तर कहता है कि ग्रहण (मैं 3.7.2 का उपयोग कर रहा हूँ) का उपयोग करने के लिए आवश्यक सभी संसाधनों को शामिल करना संभव है, लेकिन यह वास्तव में यह कैसे करना है इसका विस्तार नहीं करता है। ऐसा करने के लिए एक्लिप्स में क्या विकल्प है?


"जेनरेट जार में आवश्यक पुस्तकालयों को निकालें" चुनें, जैसे आप निर्यात करते हैं

"जेनरेट जार में आवश्यक पुस्तकालयों को निकालें" चुनें, जैसे आप निर्यात करते हैं



फाइल -> निर्यात -> जावा -> एक्लिप्से के बजाए रननेबल जार फ़ाइल का उपयोग करें

"जेनरेट किए गए जेएआर में आवश्यक पुस्तकालयों को निकालें" आपको जो चाहिए वह होना चाहिए।


बस यदि आप मेवेन के साथ कर रहे हैं तो आपको निम्नलिखित प्लगइन को शामिल करना होगा।

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <properties>
            <property>
                <name>listener</name>
                <value>com.example.TestProgressListener</value>
            </property>
        </properties>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

अधिक पढ़ें @ कैसे मैं निर्भरता के साथ जार फ़ाइल का निर्माण कर सकता हूं?





jar