C / C ++ प्रोजेक्ट्स के लिए मावेन का उपयोग करना


85

मैं मावेन बिल्ड को शौकिया, खराब लिखित और स्पष्ट रूप से लिख रहा हूं - आदिम सी / सी ++ कोड (कुछ सी, कुछ सी ++)। समस्या यह है - वर्तमान में इसका बहुत अधिक प्रचलन है और इसे आसानी से प्रतिस्थापित नहीं किया जा सकता है। इसके निर्माण के लिए बहुत से जनजातीय ज्ञान की आवश्यकता होती है (आपको विभिन्न भागों को संकलित / निर्माण करने का तरीका जानने के लिए घन से घन में जाना पड़ता है) और रिलीज़ करना कुल दुःस्वप्न है। (नहीं - मैं इसे फिर से लिखने के लिए नहीं जा रहा हूँ, plz पूछ नहीं है) मेरा सवाल है - क्या मुझे maven-native-pluginछोटे मेकफाइल्स की भीड़ को बदलने के लिए उपयोग करना चाहिए या exec-maven-pluginबस इन्हें निष्पादित करने के लिए उपयोग करना चाहिए ? मुझे बाद में कर रहे .NET के साथ बहुत अच्छा अनुभव था और मुझे नहीं पता कि मुझे nativeप्लगइन में निवेश करना चाहिए या साथ रहना चाहिए exec? यदि आपके पास "मावेनाइजिंग" सी / सी ++ के साथ अनुभव था, तो मुझे कुछ सलाह मिलेंगी।


मैं इसे आज़माने वाला हूँ। जैसा कि मैं देख रहा हूं, यह अभी भी कायम है और यह इस बीच आगे बढ़ गया है: github.com/sonatype/maven-nar-plugin
espakm

जवाबों:


90

मैं मावेन-नर-प्लगइन की अत्यधिक अनुशंसा करता हूं । मैं इसे कई मायनों में विकल्पों में श्रेष्ठ मानता हूं। इसे स्रोत फ़ाइलों को सूचीबद्ध करने की आवश्यकता नहीं होती है, कई ओएस और आर्किटेक्चर को संभालती है, यूनिट और एकीकरण परीक्षणों को संभालती है, और आम तौर पर "मावेन तरीके" का पालन करती है। यह एक नई तरह की पैकेजिंग का परिचय देता है - NAR, या "देशी संग्रह", जिसमें आपके द्वारा की जाने वाली कलाकृतियाँ शामिल हैं -dll, .so, .a, .exe, आदि), लेकिन मेटाडेटा, हेडर आदि भी। रास्ता जो समझ में आता है।

इसे थर्ड-पार्टी सॉफ्टवेयर को NAR में पैकेज करने के लिए फ्रंट अप काम की थोड़ी सी आवश्यकता होती है, लेकिन यह बहुत सीधा है। एक बार जब वे एनएआर होते हैं, तो आप सामान्य मावेन निर्भरता तंत्र का उपयोग उनके साथ लिंक करने के लिए करते हैं, उदाहरण के लिए:

<dependency>
  <groupId>cppunit</groupId>
  <artifactId>cppunit</artifactId>
  <scope>test</scope>
</dependency>

एक दोष यह है कि यह सक्रिय रूप से बनाए रखा नहीं दिखता है, लेकिन यह पूर्ण-विशेषताओं वाला है और मावेन प्लगइनिंग का एक प्रभावशाली उदाहरण है।


टिप के लिए धन्यवाद - मैं निश्चित रूप से इसे देखूंगा!
बॉस्टनोन

मैं इसे उत्तर के रूप में स्वीकार करने जा रहा हूं - यह वास्तव में मावेन-देशी-प्लगइन से श्रेष्ठ प्रतीत होता है
बोसोन

सौभाग्य। एक बात ध्यान देने योग्य है - मुझे आज सुबह एक अधिसूचना मिली (कैसे संयोग है) कि एक बग जो मैंने एक साल पहले प्रस्तुत किया था, वह आज हल हो गया है - रखरखाव प्रतिक्रिया व्यक्त करता है।
सिंगलशॉट

2
मावेन-नर-प्लग की तरह लग रहा है गतिविधि अब sonatype द्वारा बनाए रखा जा रहा है: मुद्दों
tommy chheng

1
nar-maven-plugin के उदाहरणों का उपयोग करते समय, उसके बाद काम करने के लिए निम्न कार्य करें: mvan package - यह परीक्षण पैकेज उत्पन्न करेगा और फिर परीक्षण चलाना संभव है जो NarSystem पर निर्भर है
serup
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.