মাভেন আর্টিক্ট এবং গ্রুপ আইড নামকরণ


291

আমি বর্তমানে এন্টি থেকে মাভেনে কিছু প্রকল্প সরিয়ে নেওয়ার প্রক্রিয়াধীন। আমি যেমন আছি তেমনি কনফার্মিস্ট, আমি সন্ধানের জন্য সুপ্রতিষ্ঠিত সম্মেলনগুলি ব্যবহার করতে চাই groupIdএবং artifactIdআমি কোনও বিশদ অধিবেশন খুঁজে পাই না (কয়েকটি রয়েছে, তবে তারা যে বিষয়গুলির বিষয়ে আমি ভাবছি তা আবৃত করে না)।

এই প্রকল্পটি উদাহরণস্বরূপ নিন, প্রথমে জাভা প্যাকেজ: com.mycompany.teatimer

চা টাইমার আসলে দুটি শব্দ, তবে জাভা প্যাকেজ নামকরণের কনভেনশনগুলি আন্ডারস্কোর বা হাইফেনগুলি সন্নিবেশ করতে নিষেধ করে, তাই আমি এটি সমস্ত একসাথে লিখছি।

আমি groupIdপ্যাকেজ আইডির অনুরূপটি বেছে নিয়েছি কারণ আমি মনে করি এটি একটি ভাল ধারণা। তাই কি?

অবশেষে, আমাকে একটি বাছাই করতে হবে artifactId, আমি বর্তমানে গিয়েছিলাম teatimer। কিন্তু যখন আমি অন্য ম্যাভেন প্রকল্প তাকান, তারা শব্দের বিভক্ত করতে হাইফেন ব্যবহার artifactIdগুলি, এরকম: tea-timergroupId: এর সাথে সম্মতি জানালে এটি অদ্ভুত দেখাচ্ছে com.mycompany.teatimer.tea-timer

আপনি এই কিভাবে করবেন?

আরেকটি উদাহরণ:

প্যাকেজের নাম: com.mycompany.awesomeinhouseframework

groupId: com.mycompany.awesomeinhouseframework(?)

artifactId: awesome-inhouse-framework(?)


1
আর্টিফ্যাক্টআইডের সাথে দলবদ্ধভাবে সম্মিলিত দেখতে পাচ্ছেন কোথায়? আমি মনে করি আপনি যে সম্মেলনগুলি বলেছেন তা সঠিক the
অভিনব সরকার

2
প্রকৃতপক্ষে, জাভা প্যাকেজ নামগুলিতে আন্ডারস্কোরগুলির অনুমতি রয়েছে, দেখুন: ডকস.ওরকল
অ্যাড্রিয়ান কোস্টার

উত্তর:


145

আপনার সম্মেলনটি যুক্তিসঙ্গত বলে মনে হচ্ছে। যদি আমি ম্যাভেন রেপো আপনার ফ্রেমওয়ার্ক জন্য অনুসন্ধান করা হয়, আমি জন্য দেখাবে awesome-inhouse-framework-x.y.jarমধ্যে com.mycompany.awesomeinhouseframeworkগ্রুপ ডিরেক্টরি। এবং আমি আপনার কনভেনশন অনুযায়ী এটি সেখানে পাবেন।

দুটি সহজ নিয়ম আমার পক্ষে কাজ করে:

  • রিভার্স-ডোমেন-প্যাকেজগুলি জাভা প্যাকেজের নাম সম্পর্কিত সমস্ত প্রতিবন্ধকতা সহ গ্রুপআইডির জন্য (যেহেতু এটি বেশ স্বতন্ত্র))
  • প্রকল্পের নামটি আর্টিফ্যাক্টআইডি হিসাবে মনে রাখবেন (মনে রাখবেন এটি জার-নাম বন্ধুত্বপূর্ণ হওয়া উচিত অর্থাত্ কোনও ফাইলের নামের জন্য অবৈধ বা কেবল অদ্ভুত লাগবে এমন অক্ষরগুলি থাকা উচিত নয়)

ঠিক আছে, যদি আপনি এবং abhin4v মনে করেন এটি স্বাভাবিক, তবে আমি এটি ঠিক এর মতো করে করব, আপনাকে ধন্যবাদ!
নোয়াথ

আমি হাই-হাইফেন (অজয়াইজিনহাউসফ্রেমওয়ার্ক) এবং হাইফেনের (দুর্দান্ত-ইনহাউস-ফ্রেমওয়ার্ক) সংমিশ্রণটি দেখতে কিছুটা অদ্ভুত। যেহেতু গ্রুপিড হাইফেনের অনুমতি দেয় না আমি আর্টিফ্যাকটিডের জন্য নন হাইফেন বানানটিও আটকে থাকব।
মাইকেল কুলার 23:58

3
"জার-নাম বন্ধুত্বপূর্ণ" বলতে আপনার অর্থ কী দয়া করে তা স্পষ্ট করে বলুন?
বিক্রমভি

1
উত্তরে স্পষ্ট করেছেন :)।
হেনরিক কোঙ্কেক

241

অদ্ভুততা অত্যন্ত বিষয়গত, আমি কেবল অফিসিয়াল সুপারিশ অনুসরণ করার পরামর্শ দিই:

গ্রুপআইড, আর্টিফ্যাক্টআইডি এবং সংস্করণে নামকরণের সম্মেলনের জন্য গাইড

  • groupIdআপনার প্রকল্পটি সমস্ত প্রকল্পে অনন্যভাবে সনাক্ত করবে, সুতরাং আমাদের একটি নামকরণের স্কিমা প্রয়োগ করতে হবে। এটি প্যাকেজ নামের নিয়মাবলী অনুসরণ করতে হবে, এর অর্থ কমপক্ষে আপনার দ্বারা নিয়ন্ত্রিত একটি ডোমেন নাম হিসাবে হওয়া দরকার এবং আপনি যতগুলি সাব-গ্রুপ তৈরি করতে পারেন আপনি চান। প্যাকেজের নাম সম্পর্কে আরো তথ্য তাকান

    যেমন। org.apache.maven,org.apache.commons

    গ্রুপআইডির গ্রানুলারিটি নির্ধারণ করার একটি ভাল উপায় হ'ল প্রকল্প কাঠামোটি ব্যবহার করা। এটি হ'ল যদি বর্তমান প্রকল্পটি একাধিক মডিউল প্রকল্প হয় তবে এটি পিতামাতার গ্রুপআইডিতে একটি নতুন সনাক্তকারী যুক্ত করা উচিত।

    যেমন। org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

  • artifactIdসংস্করণ ছাড়াই জারের নাম। আপনি যদি এটি তৈরি করেন তবে আপনি ছোট হাতের অক্ষর এবং কোনও অদ্ভুত প্রতীক সহ যে নামটি চান তা চয়ন করতে পারেন। এটি যদি কোনও তৃতীয় পক্ষের জার হয় তবে আপনার জারটি বিতরণ করার সাথে সাথে তার নাম নিতে হবে।

    যেমন। maven,commons-math

  • versionযদি আপনি এটি বিতরণ করেন তবে আপনি সংখ্যা এবং বিন্দুগুলির সাথে কোনও আদর্শ সংস্করণ চয়ন করতে পারেন (1.0, 1.1, 1.0.1, ...)। তারিখগুলি ব্যবহার করবেন না কারণ তারা সাধারণত এসএনএপশট (রাত্রে) বিল্ডগুলির সাথে সম্পর্কিত। এটি যদি কোনও তৃতীয় পক্ষের নিদর্শন হয় তবে তাদের সংস্করণ নম্বরটি যা-ই হোক না কেন, এবং দেখতে যতটা অদ্ভুত লাগবে ততই আপনাকে ব্যবহার করতে হবে।

    যেমন। 2.0, 2.0.1,1.3.1


4
আমি এই সম্মেলনগুলি জানি, তবে তারা সত্যিই বলে না যে কীভাবে শিল্পের নামটি তৈরি করা উচিত (কোনও জেআর নামকরণের কনভেনশন নেই) এবং এটি গ্রুপ আইডের মতো হলে কী করণীয় - আমি একটি পিওএমও দেখিনি যেখানে কেস।
নওর্থ

@ নর্থ ১. শিল্পের নামটি আপনার বিবেচনার ভিত্তিতে (তবে নামে হাইফেন ব্যবহার করা একটি প্রচলিত অনুশীলন)। ২. আপনি একটি নিখুঁত "নিয়ম" সন্ধান করছেন যা অস্তিত্বহীন (যদি আপনার ভয়ঙ্কর ইনহাউস কাঠামোটি বেশ কয়েকটি মডিউল দিয়ে তৈরি হয় তবে কী হবে ?) উদাহরণস্বরূপ বসন্ত, মাভেন, হাইবারনেট ইত্যাদির নিদর্শনগুলি দেখুন।
পাস্কাল থিভেন্ট

না, না আমার কোনও মডিউল নেই, কেবল সাধারণ প্রকল্প। প্রকৃতপক্ষে, আমাদের কাছে "ভয়ঙ্কর
ইনহাউস

11
কি হবে package? গ্রুপআইডে পার্থক্য কী?
কনস্টান্টিনেকে

1
আর্টিফ্যাক্টআইডির এতে কী সংখ্যা রয়েছে?
theonlygusti

100

বেসিক প্রথম মাভেন অ্যাপ্লিকেশন তৈরি করার জন্য নিম্নলিখিতটি বিবেচনা করুন :

groupId

  • com.companyname.project

artifactId

  • প্রকল্পের

version

  • 0.0.1

ভাড়া হিসাবে কাজ হিসাবে আমি com.my.company.projectহিসাবে groupIdবা হিসাবে ব্যবহার করা উচিত com.client.company.project?
গিয়াকোমো আলজেটা

@ গিয়াকোমো আলজিটা আপনি যে কোনও ফরমেট স্যুট আরও ভাল ব্যবহার করতে পারেন। কিছু উদাহরণ 'com.companyName.hirePortal' বা 'org.compnayName.hirePortal'।
মানওয়াল

3
groupId হওয়া উচিত com.companyname com.companyname.project না
কামিল Nekanowicz

1

তবে আমি গ্রুপআইড, আর্টিফ্যাক্টআইডি এবং সংস্করণে নামকরণের কনভেনশন সম্পর্কিত গাইডের অফিশিয়াল সংজ্ঞাটিকে দ্বিমত করছি না , যা গ্রুপআইডের প্রস্তাব দেয় আপনার নিয়ন্ত্রণ করা কোনও বিপরীত ডোমেন নাম দিয়েই শুরু করা উচিত।

comএর অর্থ এই প্রকল্পটি কোনও সংস্থার অন্তর্গত, এবং এর orgঅর্থ এই প্রকল্পটি কোনও সামাজিক সংস্থার অন্তর্ভুক্ত। এগুলি ঠিক আছে, তবে xxx.tv, xxx.uk, xxx.cn এর মতো অদ্ভুত ডোমেনগুলির জন্য, "টিভি।", "সিএন।" দিয়ে শুরু করা গ্রুপআইডের নামকরণ করা কোনও অর্থবোধ করে না, গ্রুপআইডের প্রাথমিক তথ্য সরবরাহ করা উচিত প্রকল্পটি ডোমেনের চেয়ে নয়।


2
এই কনভেনশনটি মভেন ব্যবহার করে বিকাশকারীদের প্রতিরোধ করছে যে কারণে আপনার কেন্দ্রীয় শিল্পকৌশল সংগ্রহস্থলে আপনার নিদর্শনগুলি মোতায়েন করার আগে আপনার অবশ্যই একটি ডোমেন থাকতে হবে। এটা হাস্যকর. একটি ডোমেন থাকা বছরের পর বছর সুন্দর খরচ হতে পারে।
টমি.ট্যাং

1
নেই কোন আসলে একটি নিবন্ধন মালিক প্রয়োজন যে ডোমেইন নামের জন্য। একমাত্র প্রয়োজনীয়তা হল আপনার গ্রুপ আইডি, যা আপনার জাভা প্যাকেজের নাম হবে, যখন মোতায়েনের সময় এই জাতীয় কোনও নামের সাথে দ্বন্দ্ব নয়। এই সম্মেলনটি অবশ্যই ডেভেলপারদেরকে ম্যাভেন ব্যবহার থেকে বিরত করছে না
তুলসী বাউর্ক

সংগ্রহস্থল ইউআরএল থেকে প্যাকেজের নাম নেওয়া একটি ভাল অনুশীলন। আপনি যদি গিটহাব ব্যবহার করছেন তবে আপনার অ্যাকাউন্টটি কল করা হবে myuserএবং আপনার সংগ্রহশালাটি কল করা হয়েছে myrepo, তবে কেবল প্যাকেজের নামটি ব্যবহার করুন com.github.myuser.myrepo। এটি নিখরচায় এবং এখনও অনন্য।
এফএক্সএনএন

-14

সম্পূর্ণ অনন্য জার ফাইলটি পেতে এটি বিবেচনা করুন:

  • গ্রুপআইডি - com.companyname.project
  • আর্টিফ্যাক্টআইডি - কম-কোম্পানির নাম-প্রকল্প
  • প্যাকেজ - com.companyname.project
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.