Kotlin के साथ मोनोरिपॉजिटरी: शुरुआती लोगों के लिए कोड संगठन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: मोनोरिपॉजिटरी क्या है और Kotlin डेवलपर को इसकी आवश्यकता क्यों है

\n\n

मोनोरिपॉजिटरी (monorepo) एक ऐसा दृष्टिकोण है जिसमें कई प्रोजेक्ट या मॉड्यूल का कोड एक ही रिपॉजिटरी में संग्रहीत किया जाता है। Kotlin के संदर्भ में यह विशेष रूप से सुविधाजनक है: आप सर्वर-साइड (Ktor), लाइब्रेरीज़, CLI-टूल और यहां तक कि मोबाइल ऐप (Kotlin Multiplatform) को एक एकल संरचना में जोड़ सकते हैं। शुरुआती डेवलपर्स के लिए, मोनोरिपॉजिटरी नेविगेशन, परीक्षण और सहयोग को सरल बनाता है।

\n\n

इस लेख में, हम यह समझेंगे कि Gradle Multi-Project Build का उपयोग करके Kotlin के साथ मोनोरिपॉजिटरी कैसे व्यवस्थित करें। आप सीखेंगे कि फ़ोल्डर्स को सही ढंग से कैसे संरचित करें, निर्भरताएँ कैसे सेट करें और सामान्य गलतियों से कैसे बचें।

\n\n

मुख्य भाग: Kotlin के साथ मोनोरिपॉजिटरी बनाना

\n\n

1. मोनोरिपॉजिटरी संरचना: बुनियादी सिद्धांत

\n\n

सही संरचना सफलता की कुंजी है। Kotlin मोनोरिपॉजिटरी में, प्रत्येक मॉड्यूल एक अलग Gradle उप-प्रोजेक्ट है। यहाँ एक विशिष्ट योजना है:

\n\n
my-monorepo/\n├── build.gradle.kts          # रूट बिल्ड फ़ाइल\n├── settings.gradle.kts       # मॉड्यूल सेटिंग\n├── gradle.properties         # सामान्य गुण\n├── shared/                   # साझा लाइब्रेरी (मॉड्यूल)\n│   ├── build.gradle.kts\n│   └── src/\n│       └── main/\n│           └── kotlin/\n│               └── com/example/shared/\n│                   └── Utils.kt\n├── backend/                  # सर्वर मॉड्यूल (Ktor)\n│   ├── build.gradle.kts\n│   └── src/\n│       └── main/\n│           └── kotlin/\n│               └── com/example/backend/\n│                   └── Application.kt\n└── cli-tool/                 # CLI टूल\n    ├── build.gradle.kts\n    └── src/\n        └── main/\n            └── kotlin/\n                └── com/example/cli/\n                    └── Main.kt
\n\n

मुख्य नियम: एक मॉड्यूल - एक जिम्मेदारी। एक ही मॉड्यूल में व्यावसायिक तर्क और बुनियादी ढाँचे को न मिलाएँ। इससे कोड का परीक्षण और पुन: उपयोग सरल हो जाता है।

\n\n

2. मोनोरिपॉजिटरी के लिए Gradle सेट करना

\n\n

आइए रूट फ़ाइल settings.gradle.kts से शुरू करें। यह निर्धारित करता है कि प्रोजेक्ट में कौन से मॉड्यूल शामिल हैं:

\n\n
// settings.gradle.kts\nrootProject.name = "my-monorepo"\n\ninclude(":shared")\ninclude(":backend")\ninclude(":cli-tool")\n\n// वैकल्पिक: include() के माध्यम से मॉड्यूल नाम सेट किए जा सकते हैं\n// include(":libs:utils") — यदि मॉड्यूल libs फ़ोल्डर में नेस्टेड है
\n\n

अब रूट build.gradle.kts। इसमें आमतौर पर केवल सामान्य सेटिंग्स (प्लगइन्स, रिपॉजिटरी) होती हैं और इसका अपना कोड नहीं होता:

\n\n
// build.gradle.kts (रूट)\nplugins {\n    kotlin("jvm") version "1.9.22" apply false\n    id("application") apply false\n}\n\nallprojects {\n    repositories {\n        mavenCentral()\n    }\n}\n\nsubprojects {\n    apply(plugin = "kotlin")\n    // सभी उप-प्रोजेक्ट के लिए सामान्य सेटिंग्स\n    dependencies {\n        implementation(kotlin("stdlib"))\n    }\n}
\n\n

apply false पर ध्यान दें - यह रूट प्रोजेक्ट पर प्लगइन के आवेदन को रोकता है। प्रत्येक मॉड्यूल स्वयं तय करता है कि उसे किन प्लगइन्स की आवश्यकता है।

\n\n

3. मॉड्यूल का उदाहरण: साझा लाइब्रेरी (shared)

\n\n

shared मॉड्यूल में पुन: प्रयोज्य फ़ंक्शन होंगे। इसका build.gradle.kts:

\n\n
// shared/build.gradle.kts\nplugins {\n    kotlin("jvm")\n}\n\ndependencies {\n    // कोई आंतरिक निर्भरता नहीं - यह एक बुनियादी मॉड्यूल है\n    testImplementation("org.jetbrains.kotlin:kotlin-test")\n}
\n\n

Utils.kt में कोड:

\n\n
// shared/src/main/kotlin/com/example/shared/Utils.kt\npackage com.example.shared\n\nfun greet(name: String): String = "Hello, $name!"\n\nfun add(a: Int, b: Int): Int = a + b
\n\n

अब इस मॉड्यूल को अन्य मॉड्यूल से जोड़ा जा सकता है:

\n\n
// backend/build.gradle.kts\nplugins {\n    kotlin("jvm")\n    id("application")\n}\n\ndependencies {\n    implementation(project(                

ब्लॉग

पुस्तक अनुशंसाएँ