सीसाइड का उपयोग करके एक एप्लिकेशन बनाने के बाद मैं अपने फेरो छवि कोड को हिमशैल का उपयोग करके गिटहब में धक्का देने में कामयाब रहा। मैं इसे एक नई मशीन पर एक नई फ़ारो छवि में क्लोन करने में सक्षम था। हालांकि, छवि में पैकेज लोड करने से कुछ समुद्र तटीय निर्भरताओं का अनुरोध करने में त्रुटि उत्पन्न होती है। मैं अभी भी एक फ़ारो छवि पर निर्भरता जोड़ने की अवधारणा को नहीं समझता। क्या कोई मुझे समझा सकता है कि इसे करने के बारे में कैसे जाना है? मुझे कोड परिनियोजन और सहयोग के लिए इसकी आवश्यकता है।

5
ludo 13 अक्टूबर 2018, 19:19

1 उत्तर

सबसे बढ़िया उत्तर

मुझे खेद है, मैं आपके प्रश्न को पूरी तरह समझ नहीं पा रहा हूं। यदि आपका मतलब है कि आप एक परियोजना को कैसे परिभाषित कर सकते हैं (जिसमें निर्भरता हो सकती है, आदि), कुछ ऐसा जो आप कर रहे होंगे, उदाहरण के लिए, मेवेन, आपको बेसलाइन को परिभाषित करने की आवश्यकता है।

आधार रेखा एक वर्ग (और एक पैकेज) है जिसे आपको अपने स्रोतों से परिभाषित करने और सहेजने की आवश्यकता होती है। इसे एक उदाहरण के रूप में लें: https://github. com/estebanlm/logger/blob/master/src/BaselineOfLogger/BaselineOfLogger.class.st

(यह मुझे मिला सबसे छोटा उदाहरण है, और परियोजना स्वयं बहुत दिलचस्प नहीं है)।

मैं इसे भागों में समझाऊंगा:

आपके पास BaselineOfLogger नाम का एक वर्ग है जो BaselineOf को इनहेरिट करता है और इसे बेसलाइन के समान नाम वाले पैकेज में रखा गया है (यह महत्वपूर्ण है, ताकि टूल इसे बाद में ढूंढ सकें)।

आप प्रज्ञा baseline के साथ टैग की गई एक विधि को परिभाषित करते हैं (प्राग्मा एनोटेशन की तरह थोड़ा सा है):

BaselineOfLogger >> baseline: spec [
    <baseline>

    spec for: #pharo do: [
        self beacon: spec.
        spec package: 'Logger' ].   
]

जैसा कि आप देख सकते हैं कि यह विधि फ़ारो के लिए "कल्पना" को परिभाषित करती है: - यह beacon प्रोजेक्ट को लोड करेगा (हम इसे बाद में देखेंगे) - यह घोषणा करता है कि यह पैकेज Logger को लोड करेगा।

विधि beacon: को इस प्रकार परिभाषित किया गया है:

BaselineOfLogger >> beacon: spec [
    spec 
        baseline: 'Beacon'
        with: [ spec repository: 'github://pharo-project/pharo-beacon/repository' ]
]

और जैसा कि आप देख सकते हैं, यह एक अन्य परियोजना (और एक अन्य आधार रेखा) की ओर इशारा करता है। अब, चूंकि आपको Seaside की आवश्यकता है, आपकी आधार रेखा कुछ इस तरह दिख सकती है:

BaselineOfMyProject >> baseline: spec [
    <baseline>

    spec for: #pharo do: [
        spec 
            baseline: 'Seaside3'
            with: [ 
                spec repository: 'github://SeasideSt/Seaside:v3.2.4/repository' ]
        spec package: 'MyPackage' ].    
]

अंत में, आपकी छवि में, लोड करने के लिए आप ऐसा कुछ करेंगे:

Metacello new 
    repository: 'github://yourname/yourprojectname/src';
    baseline: 'MyProject';
    load.

यह कमोबेश ऐसा ही है। लेकिन कृपया ध्यान दें कि निर्भरता घोषित करने की तुलना में एक जटिल मामला है (कोई फर्क नहीं पड़ता कि आप किस भाषा का उपयोग करते हैं) और मैंने जो उदाहरण बनाया है वह केवल मूल बातें शामिल करेगा।

3
EstebanLM 17 अक्टूबर 2018, 09:03