2017-04-04 9 views
10

module declaration अन्य चीजों के साथ, मॉड्यूल की निर्भरताओं को परिभाषित कर सकता है। यदि मैं मेवेन का निर्माण उपकरण के रूप में उपयोग करता हूं, तो यह अनावश्यक है क्योंकि pom.xml में पहले से ही इन (और अधिक) जानकारी शामिल है। उस पर आधारित, मेवेन module-info.java मेरे लिए उत्पन्न नहीं कर सका?मेवेन मॉड्यूल घोषणा

+2

मुझे नहीं लगता कि यह एक साधारण कारण के लिए हो सकता है: एक निर्भरता के भीतर मेरे पास पहले से ही कई जावा मॉड्यूल (जो निर्भरता नहीं हैं) हो सकते हैं, तो मेवेन के पास संभवतः यह जानकारी कैसी है? – john16384

+3

मॉड्यूल घोषणा अनावश्यक नहीं है ... पोम फ़ाइल में "निर्यात ..." के बराबर क्या है? इसके अलावा 'java.sql' की आवश्यकता है मैवेन को इसके बारे में कैसे पता होना चाहिए? मॉड्यूल नाम के बारे में क्या? इसके आधार पर अनुमान लगाया जाना चाहिए? artifactId? काम नहीं करेगा .... मैं आरा कीवर्ड के बारे में मेवेन DEV सूची को पढ़ने की सलाह देता हूं ... इसके अलावा ट्रांजिटिव निर्भरताओं के बारे में क्या? – khmarbaise

उत्तर

6

कोई उम्मीद कर सकता है कि अधिकांश निर्भरताओं को वास्तव में मॉड्यूल भी आवश्यक हैं। हालांकि, आवश्यकताएं जेडीके/जेआरई के मॉड्यूल को भी इंगित कर सकती हैं, जिन्हें pom.xml में निर्दिष्ट नहीं किया गया है। तो हाँ, अगर आप केवल निर्भरताओं को देखते हैं, तो शायद उनमें से अधिकतर एक आवश्यक मॉड्यूल संदर्भ में परिवर्तित हो सकते हैं।

लेकिन मॉड्यूल-डिस्क्रिप्टर में अधिक जानकारी होती है, जो सभी डेवलपर द्वारा किए जाने वाले निर्णयों पर आधारित होते हैं। मैंने इसके बारे में an article लिखा है जो विस्तार से वर्णन करता है कि इस फ़ाइल को पूरी तरह से उत्पन्न करना क्यों संभव नहीं है।

+2

लेकिन शायद यह किसी प्रकार का डिफ़ॉल्ट या न्यूनतम मॉड्यूल घोषणा उत्पन्न कर सकता है। सभी अतिरिक्त सूचनाओं (डेवलपर द्वारा किए गए निर्णय) को पोम (प्लगइन में कॉन्फ़िगरेशन) के माध्यम से प्रदान किया जा सकता है। इसके साथ पोम एक और एकमात्र विन्यास फाइल बनाए रखा जा सकता है ?! ऐसे प्लगइन भी हैं जो बीएनडी फाइलें, मैनिफेस्ट फाइलें या वेब.एक्सएमएल फाइलें उत्पन्न करते हैं जिनमें पोम के साथ दी गई जानकारी होती है। – dermoritz

+2

वास्तव में, 'jdeps' ('jdk-9/bin' में) संकलित कोड के आधार पर प्रारंभिक वर्णनकर्ता उत्पन्न कर सकता है। लेकिन यह जीवन चक्र का हिस्सा नहीं बन सकता है, क्योंकि इसे हाथ से समायोजित किया जाना है। –

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