2011-03-10 9 views
7

मैं एक ओपन सोर्स जावा लाइब्रेरी जारी करना चाहता हूं। मैंने पैकेज नाम के रूप में अपना अंतिम नाम उपयोग करने के बारे में सोचा लेकिन मुझे लगता है कि थोड़ा अजीब है। मैं 'open.libname' जैसे कुछ और तटस्थ का उपयोग करना चाहता हूं।ओपन सोर्स जावा लाइब्रेरी के लिए मुझे किस पैकेज नाम का उपयोग करना चाहिए?

क्या ओपन सोर्स जावा पैकेज नामकरण पर कोई सिफारिशें हैं?

+0

मतदाता बंद करें: उत्तर में वर्णित रिवर्स डोमेन नामों का उपयोग करके, "मुझे अपने जावा पैकेजों को कैसे नामित करना चाहिए?" के लिए वास्तव में एक आधिकारिक उत्तर है ([जावा भाषा विशिष्टता अनुभाग 6.1] के अंत में नोट्स देखें (https : //docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.1))। मैंने एक अच्छा जवाब प्रदान करने वाले डुप्लिकेट के साथ बंद करने के लिए वोट दिया, लेकिन जिसका प्रश्न बिल्कुल इस से मेल नहीं खाता है - यदि आप बेहतर डुप्लिकेट के बारे में जानते हैं, तो कृपया इसके बजाय इसका उपयोग करें। –

+0

[जावा पैकेज कॉम और संगठन] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2125293/java-packages-com-and-org) –

उत्तर

10

के रूप में अन्य लोगों ने कहा, साथ पैकेज का नाम शुरू उलटा डोमेन नाम:

myproject.org जैसे डोमेन पंजीकृत करें और फिर org.myproject.mymodule का उपयोग करें।

या, यदि आपके पास अपना डोमेन उप-डोमेन का उपयोग नहीं करता है जहां आप कोड होस्ट करते हैं, उदा। अगर आप myproject.sourceforge.net पर कोड होस्ट करते हैं, तो net.sourceforge.myproject.mymodule का उपयोग करें।

+1

'net.sf' एक अच्छा लघु उपसर्ग है, यदि [sourceforge.net] (http://sourceforge.net) होस्टिंग के लिए चुना जाता है। [sf.net] (http://sf.net/) Sourceforge.net द्वारा पंजीकृत एक डोमेन है। –

+0

मुझे आपका सुझाव पसंद आया। मेरे मामले में यह एक अजीब 'com.google.code.mylibrary' होगा क्योंकि यह एक Google आधिकारिक कोड रिलीज नहीं है।वैकल्पिक? – Gatis

+1

@Gatis क्या आपने मेरे उत्तर में 'com.googlecode.'' का सुझाव देखा था? 'googlecode.com'' code.google.com' को इंगित करता है। –

4

सामान्य अनुशंसा आपके पैकेज को अपने डोमेन के नाम से रिवर्स ऑर्डर में उपसर्ग करना है: com.mydomain.mypackage। चूंकि आप डोमेन के स्वामी हैं, इसलिए नाम टकराव की संभावना कम हो गई है।

इसके अलावा, पैकेज नाम के लिए बेहतर विकल्प कुछ ऐसा है जो आपके नाम के बजाय पैकेज की कार्यक्षमता को दर्शाता है। जब आप अपनी दूसरी (और शायद पूरी तरह से असंबंधित) लाइब्रेरी को रिलीज़ करना चाहते हैं तो आप क्या उपयोग करेंगे?

+0

आपका मतलब पुस्तकालयों के लिए gatis.foo और gatis.bar जैसा कुछ है foo और बार? – Gatis

+0

हां। यदि आपके पास gatis.com जैसे डोमेन हैं, तो आप पैकेज नाम 'com.gatis.foo' और' com.gatis.bar' का उपयोग कर सकते हैं। ओवरबोर्ड पर न जाएं, लेकिन जितना अधिक आप अपने पैकेज नाम अद्वितीय बना सकते हैं, नाम टकराव से समस्याओं का कम मौका। (कई मामलों में, पैकेज नाम की पसंद वास्तव में महत्वपूर्ण नहीं है, लेकिन लाइब्रेरी को वितरित करते समय यह अलग है। इसके अलावा, एंड्रॉइड मार्केट जैसे स्थान ऐप्स की पहचान करने के लिए लॉन्च क्लास के पैकेज नाम का उपयोग करते हैं।) –

0

यह वह उत्तर हो सकता है जो आप खोज रहे हैं।

आम सम्मेलन आपके व्यक्तिगत/कंपनी डोमेन नाम को पीछे हटाना है और पैकेज के नाम पर जो कुछ भी है उसे प्रीपेड करना है।

तो, अगर आपके डोमेन है "www.feel.com" और अपने पैकेज का नाम "mypackage" है, तो अपने पूर्णतः योग्य पैकेज नाम होगा: com.feel.mypackage

+0

[पैकेज नामकरण सम्मेलन] (http://en.wikipedia.org/wiki/Java_package#Package_naming_conventions) ये सब कुछ कम मामला है। –

+0

@Ted अनुस्मारक के लिए धन्यवाद, बस अपडेट किया गया। मैं बहुत लंबे समय से जावा से दूर गया हूं ... –

3

आप अपनी परियोजना कहां होस्ट कर रहे हैं? जब मैं Google Code पर एक प्रोजेक्ट होस्ट करता हूं, उदाहरण के लिए, मैं com.googlecode.project-name का उपयोग करता हूं (com.google.code.project-name का उपयोग करने में कठोर लगता है)। मैं वास्तव में नहीं जानता कि Google इसके बारे में क्या सोचता है, लेकिन यह कई Sourceforge.net परियोजनाओं के उदाहरण का पालन करता है। यदि आपके पास व्यक्तिगत/कॉर्पोरेट डोमेन है तो आगे बढ़ें और उसमें से एक का उपयोग करें।

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