सुपर पीओएम, ग्रैडल में पदानुक्रम प्रबंधन के अभिभावक पीओएम प्रकार

वर्तमान में हम अपने निर्माण उपकरण के रूप में मेवेन का उपयोग कर रहे हैं और ग्रैडल में माइग्रेट करने का निर्देश है। हमारा वर्तमान सेटअप है:

  1. हमारे पास एक सुपर पीओएम है जो सभी तृतीय पक्ष निर्भरताओं, विभिन्न प्लगइन्स, वितरण प्रबंधन URL को परिभाषित करता है और यह पीओएम हमारे रिलीज रेपो पर अपलोड किया जाता है।
  2. हमारे पास एक एग्रीगेटर पीओएम है जो इस सुपर पीओएम का उपयोग माता-पिता के रूप में करता है और कई सबोड्यूल्यूल को जोड़ता है।
  3. हमारे पास घटक बनाने के लिए एग्रीगेटर पीओएम में परिभाषित कई प्रोफाइल हैं।

मेरा सवाल है, इन सभी को ग्रैडल में करने का सबसे अच्छा तरीका क्या है। मैं एक ही ग्रैडल कॉन्फ़िगरेशन में सभी तृतीय पक्ष निर्भरताओं को परिभाषित कैसे कर सकता हूं और इसे अन्य स्थानों पर उपयोग कर सकता हूं।

मैं ग्रैडल के लिए नया हूं और इसलिए, यह एक बहुत बेवकूफ सवाल लग सकता है। लेकिन मैं सभी को कुछ मदद और मार्गदर्शन प्रदान करने का अनुरोध करता हूं।

0
@Gevorg, मुख्य कारणों में से एक हम धीरे-धीरे उपयोग करना चाहते थे, निर्माण चरणों पर अधिक नियंत्रण है। मेवेन के साथ, हमें प्लगइन लिखना होगा, धीरे-धीरे उन साधारण ग्रूवी स्क्रिप्ट्स हैं। यह अभिभावक/एग्रीगेटर पीओएम एक प्रारंभिक आवश्यकता थी, लेकिन घटकों के वास्तुकला/डिजाइन के रूप में विकसित (माइग्रेटेड ऐप के लिए), हमें इस तरह की सुविधा की कम आवश्यकता महसूस हुई। कुल मिलाकर, यह चिकनी चला गया। लेकिन मुझे लगता है कि इस तरह की माइग्रेशन जटिलता ऐप से ऐप में भिन्न होती है।
जोड़ा लेखक Niranjan, स्रोत
माइग्रेशन को माइग्रेशन करने के लिए मेवेन का मुख्य कारण क्या था? यह कैसे हुआ?
जोड़ा लेखक Gevorg, स्रोत

3 उत्तर

मैं निम्नलिखित करता हूं:

  • Define a gradle script (something like a parent pom)
  • Apply it (something like extending) in my build.gradle file

    apply from: 'https://youUrlHere/parent.gradle'

For more info, you can have a look here: http://forums.gradle.org/gradle/topics/inheriting_from_a_parent_not_in_the_same_project

उम्मीद है की यह मदद करेगा।

0
जोड़ा

सुपर पीओएम के बजाय, आप एक ग्रैडल प्लगइन लिखेंगे और उसे वितरित करेंगे। बिल्कुल सुनिश्चित नहीं है कि आप 2 और 3 से क्या प्राप्त करते हैं, लेकिन यदि इन परिभाषाओं के निर्माण के बीच पुन: उपयोग किया जाता है, तो वे फिर से एक प्लगइन में जाएंगे, और अन्यथा माता-पिता निर्माण स्क्रिप्ट में।

0
जोड़ा
प्लगइन के बिना कैसे (1) संभव है; मेवेन में मैं सिर्फ एक अभिभावक पोम को परिभाषित करता हूं और अपने रिलीज रेपो पर अपलोड करता हूं और अन्य पीओएम में संदर्भित करता हूं? (2) मल्टी-मॉड्यूल प्रोजेक्ट के समान है जिसमें से मुझे कई घटक उत्पन्न करना पड़ता है (webApp.war, साबुन-एपीआईवर आदि)। इसे प्राप्त करने के लिए मेवेन में, मैं प्रोफ़ाइल (वेबपेज प्रोफाइल मॉड्यूल -1, मॉड्यूल -3, एपीआई प्रोफाइल मॉड्यूल -1, 2, 5 आदि शामिल करने के लिए) को परिभाषित करता हूं; Gradle में इसके बराबर क्या है? मुझे ग्रैडल के दस्तावेज़ीकरण में कुछ भी नहीं मिला। ग्रैडल <�कोड> शामिल इस लचीलापन को केंद्रीय स्थान से अनुमति नहीं द
जोड़ा लेखक Niranjan, स्रोत
पीटर, मैं आपके विचारों को समझने की कोशिश कर रहा हूं। चूंकि मैं ग्रैडल के लिए नया हूं, इसलिए मैवेन मानसिकता लेता हूं और मैवेन दर्शन के लिए ग्रैडल को झुकाव करने की कोशिश कर रहा हूं। हालांकि, मुझे वह नहीं चाहिए। क्या आप कृपया मेरी तरह की स्थिति के लिए निर्माण पहलू को डिजाइन करने का सबसे अच्छा तरीका खोजने में मेरी मदद कर सकते हैं?
जोड़ा लेखक Niranjan, स्रोत
आप किसी वेब सर्वर पर बिल्ड स्क्रिप्ट अपलोड कर सकते हैं, लेकिन इसमें बाइनरी प्लगइन लिखने में कुछ कमीएं हैं (वेब ​​सर्वर डाउन होने पर बिल्ड विफल हो जाएगा)। मेवेन प्रोफाइल के लिए "समतुल्य" आपकी बिल्ड स्क्रिप्ट में एक if-statement है, लेकिन इसकी शायद ही कभी आवश्यकता है।
जोड़ा लेखक Peter Niederwieser, स्रोत
forums.gradle.org पर अपने प्रश्न पोस्ट करने के लिए आपका स्वागत है।
जोड़ा लेखक Peter Niederwieser, स्रोत

आप अभिभावक पोम सामग्री को ग्रैडल इनिट फ़ाइल में आसानी से परिवर्तित कर सकते हैं।

आपको लेने की जरूरत है

  • भंडार,
  • वितरण प्रबंधन
  • रूपरेखा
  • अन्य चेक जैसे खोजबग, चेकस्टाइल इत्यादि

init स्क्रिप्ट में।

विवरण बहुत बड़ा है, आप यहां मेरे द्वारा पूरी जानकारी पा सकते हैं।

http: //www.scmtechblog .net/2015/12/कैसे करने वाली विस्थापित-अभिभावक पोम-से-Maven-to.html

0
जोड़ा