मैं यह पता लगाने की कोशिश कर रहा हूं कि कई (लगभग 50+) maven2 परियोजनाओं को कैसे व्यवस्थित किया जाए, ताकि वे एक केंद्रीय सांठगांठ के भंडार में तैनात हो सकें। mvn deploy
लक्ष्य का उपयोग करते समय , किसी को इस तरह वितरण वितरण टैग में लक्ष्य निर्दिष्ट करने की आवश्यकता होती है:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
अब, मैं हर एक pom.xml (उन 50+ में से) को इस ब्लॉक को बार-बार शामिल नहीं करना चाहता। मेरी पहली हालांकि settings.xml
फ़ाइल होगी, लेकिन ऐसा लगता है कि यह (डिजाइन द्वारा) वहां इसे परिभाषित करना संभव नहीं है। तो, पहला सवाल यह होगा कि ऐसा क्यों है? यदि यह संभव होगा तो मैं इसे maven2 वितरण में settings.xml में निर्दिष्ट कर सकता हूं, जिसे सभी डेवलपर्स को वितरित किया जा सकता है।
एकमात्र संभव समाधान जो मैंने पाया है वह एक संगठन-व्यापी मास्टर-पोम प्रोजेक्ट बनाना था, जिसमें ये सेटिंग्स हों, और अन्य सभी pom.xml <parent>
टैग के माध्यम से इस मास्टर-पोम पर निर्भर करें । लेकिन मल्टी-मॉड्यूल बिल्ड में यह अजीब लगता है:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
आमतौर पर मैं सभी दस्तावेज़ों में पढ़ता हूं कि मॉड्यूल पॉम को मूल पॉम का उपयोग करना चाहिए, न कि कुछ अलग से। लेकिन Inheritance v। एकत्रीकरण के बारे में मावेन वेबसाइट को पढ़ने के बाद लिखा जाता है कि यह वास्तव में संभव है।
एक समस्या मुझे मिली मावेन साइट पीढ़ी के साथ थी, जो कि इस सेटअप के साथ समस्या लगती है (यदि वे कोई प्रत्यक्ष बैक-रेफरेंस नहीं हैं तो मॉड्यूल सही तरीके से लिंक नहीं होते हैं)
तो, क्या यह एक वैध दृष्टिकोण है? समस्या का कोई अन्य, अधिक स्पष्ट, सरल समाधान?