एसबीटी (सॉफ्टवेयर)

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

एसबीटी स्काला प्रोजेक्ट के निर्माण और प्रबंधन की प्रक्रिया को सरल और कुशल बनाने के लिए सुविधाओं की विस्तृत श्रृंखला प्रदान करता है। कुछ प्रमुख विशेषताओं में सम्मिलित हैं:


 * निर्भरता प्रबंधन: प्रोजेक्ट निर्भरता को स्वचालित रूप से डाउनलोड करने और संभालने की अपनी क्षमता के माध्यम से, एसबीटी बाह्य लाइब्रेरी और संरचना के उपयोग की सुविधा प्रदान करता है।
 * वृद्धिशील संकलन: एसबीटी कोड के मात्र उन भागों को पुन: संकलित कर सकता है जो बदल गए हैं, जिसके परिणामस्वरूप विकास चक्र के समय महत्वपूर्ण समय की बचत होती है।
 * अनुकूलन योग्य निर्माण प्रक्रिया: एसबीटी अत्यधिक अनुकूलन योग्य है, जो डेवलपर्स को कस्टम निर्माण सेटिंग्स को परिभाषित करने और अपनी प्रोजेक्ट की अद्वितीय आवश्यकताओं के साथ संरेखित करने के लिए निर्माण प्रक्रिया को कॉन्फ़िगर करने की अनुमति देता है।
 * प्लग-इन (कंप्यूटिंग) पारिस्थितिकी तंत्र: एसबीटी प्लगइन पारिस्थितिकी तंत्र का अनुरोध करता है जो इसकी कार्यक्षमता को बढ़ाता है, जिसमें कोड गुणवत्ता जांच, परिनियोजन स्वचालन और परीक्षण कवरेज रिपोर्ट जैसी अतिरिक्त सुविधाएं सम्मिलित होती हैं। नवीन प्लगइन्स के विकास और एकीकरण को पूर्ण रूप से समर्थित और प्रोत्साहित किया जाता है।
 * निरंतर एकीकरण: एसबीटी के साथ, जब भी कोई स्रोत फ़ाइल बदली जाती है, तो डेवलपर्स प्रणाली को स्वचालित रूप से पुन: संकलित करने और परीक्षणों को पुन: चलाने के लिए समूहित कर सकते हैं।
 * बहु-प्रोजेक्ट निर्माण: कई स्काला प्रोजेक्ट पर कार्य करने वाले डेवलपर्स के लिए, एसबीटी उन्हें ही निर्माण के भीतर प्रबंधित करने के लिए सहायक सुविधाएँ प्रदान करता है।
 * रीड-इवल-प्रिंट लूप: एसबीटी अन्योन्य क्रिया शेल से सुसज्जित है, जो डेवलपर्स को विकास प्रक्रिया के समय कार्यों और आदेशों को निष्पादित करने के लिए सुविधाजनक तरीका प्रदान करता है।
 * समानांतर कार्य निष्पादन: एसबीटी समानांतर में कार्यों को निष्पादित कर सकता है, जिससे बड़ी प्रोजेक्ट के निर्माण समय में तीव्रता आती है।
 * आईडीई के साथ एकीकरण: विकास अनुभव को अनुकूलित करने के लिए, एसबीटी लोकप्रिय एकीकृत विकास वातावरण (आईडीई) जैसे इंटेलिज आइडिया और विजुअल स्टूडियो कोड के साथ सरलता से एकीकृत होता है।

एसबीटी स्काला समुदाय में वास्तविक मानक उपकरण है, जिसका उपयोग, उदाहरण के लिए, स्वयं स्काला 2 और स्काला 3 कंपाइलर, प्ले फ्रेमवर्क और लोकप्रिय शतरंज सर्वर, लाइकेस द्वारा किया जाता है। एसबीटी प्रोजेक्ट बूटस्ट्रैप्ड है - यह स्वयं को बनाने के लिए एसबीटी का उपयोग करता है और डॉगफूडिंग को एक धनात्मक विशेषता मानता है।

इतिहास
एसबीटी को मूल रूप से 2008 में मार्क हर्राह द्वारा ओपन-सोर्स प्रोजेक्ट के रूप में जारी किया गया था। इन वर्षों में, यह कई रिलीज़ों के माध्यम से महत्वपूर्ण रूप से विकसित हुआ है, जिनमें से प्रत्येक में नवीन सुविधाएँ, बग फिक्स और संवर्द्धन सम्मिलित हैं। यहां महत्वपूर्ण रिलीज़ों के साथ-साथ उनके द्वारा प्रस्तुत किए गए प्रमुख परिवर्तनों और नवाचारों का अवलोकन दिया गया है:
 * 1) एसबीटी 0.3.2 (2008): यह एसबीटी की प्रथम आधिकारिक रिलीज़ थी। इसने परियोजना परिभाषा, निर्भरता प्रबंधन और संकलन जैसी प्राथमिक विशेषताएं प्रस्तुत कीं थी।
 * 2) एसबीटी 0.7 (2009): स्काला प्रोजेक्ट के निर्माण और प्रबंधन के लिए मूलभूत संरचना को स्थापित किया गया था। मुख्य विशेषताओं में वृद्धिशील संकलन, निर्भरता प्रबंधन और प्रत्यक्ष कार्य निष्पादन सम्मिलित हैं।
 * 3) एसबीटी 0.10 (2011): निर्माण डेफिनिशन सिंटैक्स में महत्वपूर्ण बदलाव प्रस्तुत किया गया था, जिससे यह अधिक अभिव्यंजक और नम्य बन गया। निष्पादन, निर्भरता प्रबंधन और कॉन्फ़िगरेशन में भी वृद्धि हुई थी।
 * 4) एसबीटी 0.12 (2012): बहु-मॉड्यूल प्रोजेक्ट के लिए स्पष्ट समर्थन, कस्टम कॉन्फ़िगरेशन को परिभाषित करने की क्षमता और सरलीकृत प्लगइन विकास।
 * 5) एसबीटी 0.13 (2013): प्रयोज्यता और निष्पादन पर ध्यान केंद्रित। इस संस्करण में प्रोजेक्ट बनाने और प्रबंधित करने के लिए एक वेब-आधारित टूल एक्टिवेटर प्रस्तुत किया गया। अन्य विशेषताओं में वृद्धिशील मैक्रो संकलन, निर्माण परिभाषा त्रुटियों की स्पष्ट हैंडलिंग और विभिन्न निष्पादन अनुकूलन सम्मिलित हैं। 0.13 अगले चार वर्षों तक मुख्य एसबीटी संस्करण बना रहा था।
 * 6) एसबीटी 1.0 (2017): निष्पादन और स्थिरता पर ध्यान केंद्रित करते हुए एसबीटी कोडबेस में पर्याप्त बदलाव किए गए, परन्तु यथासंभव प्राचीन संस्करणों के साथ संगतता बनाए रखने का भी प्रयास किया गया। नवीन सुविधाओं में कार्यों और सेटिंग्स को परिभाषित करने के लिए एकीकृत स्लैश सिंटैक्स, स्पष्ट निर्भरता प्रबंधन और निर्माण परिभाषाओं के लिए उपयोग किए जाने वाले भाषा संस्करण के रूप में स्काला 2.12 सम्मिलित हैं। इसके अतिरिक्त, नवीन जिंक 1.0 वृद्धिशील कंपाइलर पर स्विच करने से वृद्धिशील संकलन निष्पादन में और वृद्धि हुई।
 * 7) एसबीटी 1.1 (2018): इस रिलीज ने एसबीटी सर्वर जारी किया, जिससे आईडीई और अन्य टूल भाषा सर्वर प्रोटोकॉल (एलएसपी) के माध्यम से एसबीटी के साथ परस्पर क्रिया कर सके। इसने स्काला.जेएस और स्काला नेटिव के लिए अनुप्रस्थ-निर्माणिंग समर्थन भी जोड़ा और विभिन्न कार्यों के निष्पादन में सुधार किया।
 * 8) एसबीटी 1.3 (2019): इस संस्करण ने कौरसियर को डिफ़ॉल्ट निर्भरता प्रबंधक के रूप में अपनाकर निर्भरता हल को तीव्र करके उपयोगकर्ता अनुभव में उल्लेखनीय रूप से सुधार किया। आगे के संवर्द्धन में निर्माण कैशिंग तंत्र में सुधार और जेडीके 11 के लिए समर्थन सम्मिलित है।
 * 9) एसबीटी 1.5 (2021): स्काला 3 के लिए समर्थन जोड़ा गया था। बीएसपी (निर्माण सर्वर प्रोटोकॉल) समर्थन में भी संवर्द्धन किया गया, जिससे आईडीई के साथ स्पष्ट एकीकरण संभव हो सका।
 * 10) एसबीटी 1.8 (2022): यह रिलीज़ कौरसियर में अपडेट लेकर आई और आइवी समर्थन में सुधार हुआ।
 * 11) एसबीटी 1.9 (2023): नवीन प्रोजेक्ट बनाने में सहायता के लिए कौरसियर में अधिक अपडेट और टेक्स्ट-आधारित मेनू।

फ़ाइल निर्माण
एक एसबीटी निर्माण को  का उपयोग करके परिभाषित किया जा सकता है, नीचे  निर्माण परिभाषा का एक उदाहरण दिया गया है:

उदाहरण उपयोग
प्रत्येक निर्माण कमांड के लिए एसबीटी लागू किया जा सकता है, या यदि कोई कमांड नहीं दिया गया है तो यह अन्योन्य क्रिया मोड में प्रवेश कर सकता है। वर्तमान निर्माण के निर्माण उत्पादों को स्पष्ट करने के लिए:

एक ही लाइन पर एकाधिक कमांड का उपयोग किया जा सकता है। फू नामक एकल परीक्षण चलाने और फिर निर्यातित जार प्रकाशित करने के लिए:

विस्तारशीलता और एकीकरण
एसबीटी की कार्यक्षमता को प्लगइन आर्किटेक्चर के माध्यम से बढ़ाया जा सकता है। समुदाय-योगदान वाले प्लगइन्स हस्ताक्षर, पैकेजिंग, प्रकाशन और कलाकृतियों को जारी करने, ब्लॉग और डेटाबेस जैसी अन्य सेवाओं से जुड़ने या अन्य प्रौद्योगिकियों के साथ एकीकृत करने जैसे क्षेत्रों को कवर करते हैं।

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

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

यह भी देखें

 * निर्माण ऑटोमेशन सॉफ़्टवेयर की सूची