2012-12-30 28 views
6

मैं जावा में मैवेन का उपयोग कर रहा हूं और PHP मेवेन का उपयोग करना शुरू कर दिया है, हाल ही में मैंने संगीतकार को स्विच किया है।PHP संगीतकार निर्भरताओं को डाउनलोड करने के लिए बेहतर दृष्टिकोण

मेरे परियोजना Zend फ्रेमवर्क 2 और टीम केवल आवेदन कोड विक्रेता निर्देशिका पर कुछ भी नहीं में चेक के साथ है। यह संघर्ष से बचने के लिए किया जाता है और एसवीएन के तहत पुस्तकालय नहीं है।

अब हर बार एक डेवलपर अपने या अपने नए वातावरण सेट है, हम देख सकते हैं कि, संगीतकार इंटरनेट से निर्भरता खींचती है। यह काफी लंबा समय लगता है।

क्या इस समस्या से बचने के लिए परियोजना को तेजी से या संभालने के लिए कोई बेहतर विचार/दृष्टिकोण है?

Maven Maven प्रॉक्सी सर्वर जो डाउनलोड कैश कर सकते और फिर नेटवर्क में इस्तेमाल किया जा सकता है, लेकिन हम किसी भी समाधान इस तरह की समस्याओं को संभालने के लिए क्या है का उपयोग करता है?

उत्तर

1

पीएचपी में रेपो की तरह एक संगीतकार स्थानीय रूप से चलाने के लिए एक मौजूदा विकल्प है और यह Satis कहा जाता है (यह वास्तव में संगीतकार द्वारा प्रदान की गई) यहाँ: https://github.com/composer/satis

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

आप कुछ इस तरह कर सकते हैं:

{ 
    "repositories": [ 
     { 
      "type": "composer", 
      "url": "http://satis.example.org/" 
     } 
    ], 
    "require": { 
     "company/package": "1.2.0", 
     "company/package2": "1.5.2", 
     "company/package3": "dev-master" 
    } 
} 

यह भी आप GitHub पर उन्हें प्रकट किए बिना निजी संकुल और पुस्तकालयों के लिए अनुमति देता है।

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

+0

यह वास्तव में समस्या हल करता है। – sujaisd

2

संगीतकार एक बहुत ही युवा परियोजना है, इसलिए ऐसी चीजें गायब हो सकती हैं जो उदा। मेवेन परेशानी के बिना सह कर सकते हैं।

आप composer docs में वर्णित के रूप में अपने Packagist सर्वर सेट कर सकते हैं। मेरा मानना ​​है कि पैकेजिस्ट के पास कुछ कैशिंग विकल्प हैं जिनका उपयोग पैकेजिस्ट सर्वर पर संकुल को स्टोर करने के लिए किया जा सकता है।

क्या आप भी कर सकता है आपकी निर्भरता कांटा और उन्हें एक कंपनी के स्वामित्व वाली निजी भंडार करने के लिए धक्का है। आपके composer.json में अब आप केवल इस निर्भरता का उपयोग करेंगे, जिससे इसे क्लोन करने में तेज़ी होगी। बेशक यह आपको सभी अलग-अलग निर्भरताओं को बनाए रखने की आवश्यकता होगी (हालांकि यह एक स्क्रिप्ट और क्रोनबॉज के साथ किया जा सकता है, जीथब रेपो से डेटा खींच रहा है और इसे आपकी कंपनी के स्वामित्व में धक्का दे रहा है)।

मैं यह भी मानता संगीतकार कुछ प्रॉक्सी विकल्प हैं, लेकिन मुझे नहीं लगता इन कैश निर्भरता के लिए होती हैं है।

अंतिम विकल्प ऐसा कुछ विकसित करना होगा, या तो संगीतकार/पैकेजिस्ट के हिस्से के रूप में या स्टैंड-अलोन के रूप में।

+0

मैं पैकिस्ट और प्रॉक्सी विकल्प के साथ प्रयास करता हूं और आपको फीडबैक जानने देता हूं। अभी के लिए धन्यवाद। – sujaisd