एक उपयोगी जावा लाइब्रेरी कैसे बनाएं और प्रकाशित करें


9

मैंने हाल ही में एक जावा वर्ग पर काम किया है जो वस्तुओं की सूची में क्रमपरिवर्तन करता है। किसी भी मामले में, मैं इस पुस्तकालय को जनता के लिए पेश करना चाहूंगा, इसलिए मेरे पास कई प्रश्न हैं:

  • अधिकांश पुस्तकालयों में मुझे यह जटिल पैकेज नामकरण है, विशेष रूप से सहित com/ org। क्या इन के लिए एक सम्मेलन है या एक permutationsपैकेज पर्याप्त है?
  • क्या इन्हें प्रकाशित करने के लिए कोई विशिष्ट प्रारूप है? क्या मुझे स्रोत कोड / javadoc के लिए अलग WARs शामिल करना चाहिए?
  • मेरे पास एक GitHub भंडार पर फाइलें हैं। मुझे लगता है कि मैं वहाँ फ़ाइलों की सेवा कर सकता हूँ, लेकिन मुझे अपने रेपो को खोजने के लिए लोग कैसे मिलेंगे?

सम्मेलन पैकेज के नामकरण के लिए उलट इंटरनेट डोमेन है
डैनियल मूरा

2
और अगर मेरे पास डोमेन नहीं है?
अमीर रचम

1
@Amir: फिर मुझे लगता है कि शायद कुछ amirrachum.util.permutationsअच्छा हो सकता है।
FrustratedWithFormsDesigner

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

जवाबों:


9
  • प्रकाशित करने का एक मानक तरीका (गीथहब पर स्रोत कोड के अलावा) मावेन सेंट्रल के लिए औपचारिक जार / डब्ल्यूएआर रिलीज है जो कई (मावेन, ग्रैडल, एंट / आइवी) बिल्डरों का उपयोग निर्भरता के रूप में पुस्तकालयों में लाने के लिए करते हैं। ऐसा करने के लिए, सबसे अच्छा तरीका नेक्सस प्रक्रिया से गुजरना है

  • यह भी उन्हीं JAR / WARs को होस्ट करने के लिए फ्रेंडली माना जाता है, जैसे कि Sourceforge या GitHub जैसे रेपो होस्ट करने वाले कोड पर।

  • अपने डोमेन के संदर्भ में मेरा सुझाव है कि आप firstnamelastname.net/org/com खरीदें और इसे अपनी नामकरण योजना के रूप में उपयोग करें (जैसे कि मेरे लिए यह net.martijnverburg.foobar है)। अन्यथा @Daniel Moura द्वारा सुझाए गए github डोमेन का उपयोग करना एक अच्छा है।

  • इसे प्रचारित करने के लिए, इसके बारे में ब्लॉग करें, इसके बारे में ट्विटर करें, हैकर न्यूज़, रेडिट, डिग, स्लैशडॉट, डीज़ोन, टीएसएस, ज्वॉवर्ल्ड आदि को प्रस्तुत करें।

HTH!


नेक्सस प्रक्रिया के लिए +1 - उपयोग करने के लिए अन्य डेवलपर्स को प्राप्त करने में बहुत उपयोगी है, और इसलिए समीक्षा करें, अपनी लाइब्रेरी
गैरी रोवे

3

यदि आपने अपना कोड GitHub पर धकेल दिया है तो JitPack के साथ अपनी लाइब्रेरी (जार) साझा करना आसान है ।

आपके उपयोगकर्ताओं को केवल अपने build.gradle में भंडार जोड़ना होगा:

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

और फिर एक निर्भरता के रूप में अपने GitHub भंडार:

dependencies {
    // ...
    compile 'com.github.YourUsername:Repo:Release'
}

जितपैक मावेन सेंट्रल के समान मावेन भंडार का काम करता है। अच्छी बात यह है कि आपको अपना पुस्तकालय अपलोड करने की आवश्यकता नहीं है। पर्दे के पीछे JitPack GitHub से कोड की जांच करेगा और इसे संकलित करेगा। जैसे ही आप GitHub पर एक नई रिलीज़ प्रकाशित करते हैं, यह दूसरों के उपयोग के लिए उपलब्ध हो जाता है।

एक स्रोत जार को जोड़ने के लिए एक परियोजना और उदाहरण तैयार करने के तरीके पर एक गाइड भी है

एक डोमेन नाम की आवश्यकता नहीं है इसलिए आपका groupId com.github.Username बन जाता है। आप पैकेज के नामकरण के लिए भी इसका उपयोग कर सकते हैं।


2

अधिकांश पुस्तकालयों में मुझे यह जटिल पैकेज नामकरण है, विशेष रूप से कॉम / ऑर्गन सहित। क्या इन के लिए एक सम्मेलन है या एक क्रमपरिवर्तन पैकेज पर्याप्त है?

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

यदि आपके पास एक डोमेन नाम है, तो मैं उसका उपयोग करने का सुझाव दूंगा। यदि आप GitHub या Sourceforge जैसी सेवा पर होस्ट कर रहे हैं, तो अपनी परियोजना के लिए पथ का उपयोग करना पर्याप्त होगा। भले ही, संघर्ष या भ्रम को रोकने के लिए स्पष्ट रहें।

क्या इन्हें प्रकाशित करने के लिए कोई विशिष्ट प्रारूप है? क्या मुझे स्रोत कोड / javadoc के लिए अलग WARs शामिल करना चाहिए?

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

मेरे पास एक GitHub भंडार पर फाइलें हैं। मुझे लगता है कि मैं वहां फाइलों की सेवा कर सकता हूं, लेकिन मुझे अपने रेपो को खोजने के लिए लोग कैसे मिलेंगे?

इसका विज्ञापन करें। इसे कुछ दोस्तों को दिखाते हुए शुरू करें। इसके बारे में ब्लॉग। इंटरनेट पर एक लिंक साझा करें। किसी ऐसे व्यक्ति को ढूंढें जिसकी समस्या है कि वे इस पुस्तकालय का उपयोग करके हल कर सकते हैं (लेकिन सुनिश्चित करें कि आपने खुलासा किया है कि आपने पुस्तकालय बनाया है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.