2012-10-31 11 views
10

मैं वर्तमान में कुछ अलग मेवेन परियोजनाओं का प्रबंधन करता हूं जिसमें मैं प्रोटोबफ्स को एक क्रमबद्ध प्रारूप और तार के रूप में उपयोग करता हूं। संकलन समय पर कोड उत्पन्न करने के लिए मैं डेविड ट्रॉट के maven-protoc plugin का उपयोग कर रहा हूं।मेवेन परियोजनाओं के बीच प्रोटोकॉल बफर परिभाषाओं को आयात करना

सभी अच्छे और अच्छे हैं जब तक कि मैं उन परियोजनाओं को एक दूसरे के बीच संवाद करने की इच्छा नहीं करता - या बल्कि, एक दूसरे के प्रोटोबफ का उपयोग करें। प्रोटोबफ भाषा में "आयात" निर्देश होता है जो मैं चाहता हूं लेकिन प्रोजेक्ट बी को प्रोजेक्ट बी के लिए प्रोजेक्ट ए को ".proto" फ़ाइल (या संभवतः कुछ इंटरमीडिएट प्रारूप?) निर्यात करने की चुनौती का सामना करना पड़ रहा है।

मैवेन संसाधनों को बंडल करने के लिए एक परियोजना का एक तरीका प्रदान करता है लेकिन AFAIK, इन्हें कोड द्वारा रनटाइम पर उपयोग किया जाना चाहिए, संकलन/स्रोत पीढ़ी चरण के दौरान किसी लक्ष्य द्वारा नहीं - कम से कम मैं सक्षम नहीं हूं दस्तावेज ढूंढें जो वर्णन करता है कि मैं क्या हासिल करना चाहता हूं।

उत्तर

2

आप अपनी .proto फ़ाइलों को उस परियोजना में अलग .jar/.zip में पैकेज कर सकते हैं जहां वे उत्पन्न होते हैं, और उन्हें एक समर्पित वर्गीकृत का उपयोग करके अपने भंडार में प्रकाशित करते हैं। असेंबली प्लगइन का उपयोग करने से रिलीज के दौरान बनाए गए "स्रोत जार" के करीब कुछ प्रकाशित करने में मदद मिल सकती है।

फिर, उन परियोजनाओं पर, पहले से बनाए गए आर्टिफैक्ट को निर्भरता के रूप में जोड़ें। "अनपैक-निर्भरता" लक्ष्य के साथ निर्भरता प्लगइन का उपयोग करें, और इसे "संकलन" से पहले एक चरण में बांधें।

+0

अच्छा लगता है कि अच्छा लगता है, क्या कोई भी –

5

मुझे हासिल करने का एक और तरीका मिला है, और इसमें कोई मेवेन जादू शामिल नहीं है। मेवेन-प्रोटोक प्लगइन के लिए कोड में डाइविंग, मैंने पाया कि यह एक समर्थित उपयोग केस है - प्लगइन निर्भर जारों में और प्रोमो फ़ाइलों को इकट्ठा करने और एकत्रित करने और उन्हें अस्थायी निर्देशिका में अनपैक करने के लिए देखेगा। उस निर्देशिका को प्रोटोक इनवोकेशन के आयात पथ के रूप में सेट किया जाता है।

सभी ऐसा करने की जरूरत है .proto फ़ाइल के लिए निर्भरता के पैकेज है, जो मैं इसे एक संसाधन बनाकर किया था में शामिल किया जाना:

परियोजनाओं/एक/src/मुख्य/संसाधन/

a.proto परियोजनाओं में अब

/बी/pom.xml, 'एक' एक नियमित रूप से Maven निर्भरता के रूप में जोड़ सकते हैं और सिर्फ b.proto से a.proto आयात जैसे कि वह स्थानीय स्तर पर ही अस्तित्व में:

b.proto: आयात "एक .proto ";

यह आदर्श नहीं है, क्योंकि फाइल नाम विभिन्न परियोजनाओं के बीच संघर्ष कर सकते हैं, लेकिन यह शायद ही कभी पर्याप्त हो।

+0

को कॉन्फ़िगर करने का उत्तर दे सकता है। किसी को मॉड्यूल नाम –

+0

के अनुसार निर्देशिका में .prot फ़ाइलों को डालने का अधिकार होना चाहिए यदि आप एक से एक प्रोटो फ़ाइल आयात करना चाहते हैं तो आप यह कैसे करेंगे अपने कामकाजी परियोजना में एक प्रोटो फ़ाइल के लिए जार? – Righto

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