কোন সাধারণ জাভা প্রকল্পের জন্য কি আরকিটাইপ পছন্দ করবেন


90

এমভিএন আরকিটাইপ: জেনারেট অনেকগুলি বিকল্প সরবরাহ করে এবং আমি জুনিট টেস্টের ক্ষেত্রে একটি সাধারণ জাভা ইউটিলিটি তৈরি করতে চাইছি। আমি জানতে চাই যে আমার এখানে কোন প্রত্নতাত্ত্বিক ব্যবহার করা উচিত?


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

উত্তর:


16

আপনি যখন এটি করেন mvn archetype:generate, একটি কোঁকড়া বন্ধনী বন্ধ করে একটি ডিফল্ট নির্বাচন উপস্থিত হয় (), উদাহরণস্বরূপ (1274), যদি আপনি # 1274 কী তা দেখতে স্ক্রোল করে থাকেন, তবে সাধারণ জাভা প্রকল্পগুলি করার পরে সাধারণত এটি চেষ্টা করা বা শুরু করার জন্য ডিফল্ট জাভা আরকিটাইপ হয় so নির্বাচন করা নিরাপদ।


ডিফল্টটি এখন 333, 3 নয়
টিমপি

4
এটি এখন380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
এসএফএফ

4
এটি উদাহরণস্বরূপ বলে, না, তাই, সুতরাং এটি বোঝাচ্ছে যে ডিফল্ট নির্বাচনটি 3 হয়
ওহ চিন বুন

4
এটি এখন 644 org.apache.maven.archetypes:maven-archetype-quickstart:1.1
aliopi

এটি এখন 874 :)
মিকু

74

আমি দুটি আরকিটাইপ ব্যবহার করি। এটি নির্ভর করে আপনি কী ধরণের অ্যাপ্লিকেশন তৈরি করবেন।

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


4
নোট করুন যে এটি ডিফল্টরূপে Eclipse প্লাগইনে রয়েছে (অন্তত এটি আজই রয়েছে)।
বেন

আমি এখানে maven-archetype-webapp তৈরি করতে যাচ্ছি এবং maven ক্যাটালগ ডাউনলোড করতে যাচ্ছি তবে একটি ত্রুটি পাচ্ছি।
মোগলি

আমার কি করা উচিৎ?
মোগলি

19

আমি নীচের মত কমান্ড ব্যবহার করছি:

mvn archetype:generate -Dfilter=org.apache.maven.archetypes:

আমি কেবলমাত্র গ্রুপআইডি থেকে আকৃতির টাইপের একটি সংক্ষিপ্ত তালিকাorg.apache.maven.archetypes পাব। শুরু হচ্ছে জন্য ভাল বেশী maven-archetype-quickstartএবং maven-archetype-webappআমার পূর্বসুরীদের মত জানান।



7

আমার মনে হয় আপনার ব্যবহার করা উচিত maven-archetype-simple

সম্পাদনা

মভেন ডকুমেন্টেশন অনুসারে :

  • maven-archetype-quickstart একটি আরকিটাইপ যা একটি নমুনা মাভেন প্রকল্প ধারণ করে।
  • maven-archetype-simple একটি আরকিটাইপ যা একটি সাধারণ মাভেন প্রকল্প ধারণ করে।

4
আমি maven-archetype-simpleআমার একিলেপস সিলেকশনে দেখি না, তবে দেখতে পাচ্ছি maven-archetype-quickstart। তারা কি একই?
huahsin68

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

6

আমি একটি খুব সাধারণ pom.xML ফাইল দিয়ে শুরু করব যা আপনার কেবলমাত্র প্রয়োজন has কিছুটা এইরকম

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-module</artifactId>
  <version>1</version>
</project>

http://maven.apache.org/guides/intr پيداوار/intr پيداوار-to-the-pom.html থেকে


12
যদিও এই পরামর্শের যোগ্যতা থাকতে পারে, তবে এটি প্রশ্নের উত্তর দেয় না। প্রত্নতাত্ত্বিক ধরণের পুরো বিন্দুটি যেমন আমি বুঝতে পেরেছি তা হ'ল বিকাশকারীকে এই ধরণের বয়লারপ্লেট থেকে রক্ষা করা এবং সেরা অনুশীলনগুলি অনুসরণ করা সহজ করে তোলা।
মাইকেল শ্যাপার

3

ব্যবহারিক বিকাশকারী থেকে আপনি যে কোনও মৌলিক ব্যবহার করতে পারেন:

জাভা 8 + সাধারণত ব্যবহৃত পরীক্ষাগুলি:

mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0

জাভা 9 + সাধারণভাবে ব্যবহৃত টেস্ট লাইব্রেরি

mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0 -Djava-version=9

এগুলিতে JUnit 4, Mockito এবং AssertJ, এবং যদি আপনি চান যে আপনার জার ফাইলটি কার্যকর হতে পারে সে ক্ষেত্রে একটি ডিফল্ট মেনিফেস্ট ফাইল অন্তর্ভুক্ত রয়েছে। আরও তথ্য: https://thepracticaldeveloper.com/archetyype/

দাবি অস্বীকার: আমি সেই ব্লগের লেখক।


আমি পেয়েছি groupId, তবে কিসের archetypeGroupIdজন্য?
lupchiazoem

4
এটি মাভেনের সংগ্রহস্থলে আরকিটাইপগুলি সনাক্ত করতে ব্যবহৃত হয় সাথে একসাথে archetypeArtifactId
মাইসস

0

maven-archetype-quickstart একটি আরকি টাইপ যা একটি নমুনা মাভেন প্রকল্প ধারণ করে। maven-archetype-simple একটি আরকিটাইপ যা একটি সাধারণ মাভেন প্রকল্প ধারণ করে।

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

উইন্ডো খুলুন> পছন্দসমূহ> মেভেন> আরকিটাইপস

Add Remote Catalogনিম্নলিখিত ক্লিক করুন এবং যুক্ত করুন:

ক্যাটালগ ফাইল: http://repo1.maven.org/maven2/archetype-catolog.xml

বর্ণনা: মাভেন ক্যাটালগ

দ্রষ্টব্য: ইন্টারনেট সংযোগ আপনার প্রথম বড় প্রকল্পের সময়কালীন নির্মাণের প্রয়োজন।


উপরের ক্যাটালগটি ডাউনলোড করে ম্যানুয়ালি সেট করা হয়েছে তবে আমার পক্ষে কাজ হয়নি।
মোগলি

0

ডিফল্ট আরকিটাইপ নম্বরটি এখন 1092 1092: রিমোট -> org.apache.maven.archetyype: মাভেন-আরচাইটিপ-কুইকস্টার্ট (একটি আরকিটাইপ যা একটি নমুনা মাভেন প্রকল্প ধারণ করে))


0

আপনি জাভা আরকিটাইপ বিবেচনা করতে চাইতে পারেন : জাভিত পরীক্ষা সহ সেরা অনুশীলনগুলি অনুসরণ করে একটি জাভা প্রকল্প দ্রুত শুরু করার জন্য এটির যুক্তিসঙ্গত ডিফল্ট রয়েছে। আমি এটির আধুনিক উত্তরসূরি হিসাবে কল্পনা করেছি maven-archetype-quickstart

উদাহরণ: mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false

দাবি অস্বীকার: আমি লেখক।

বিকল্প সম্পর্কে আরও তথ্যের জন্য, এখানে সেই প্রকল্পের README এর একটি অংশ রয়েছে (এটি এখানে অনুলিপি করা থেকে আরও লিঙ্ক সরবরাহ করে)।

অফিসিয়াল কুইকস্টার্ট আরকিটাইপ

সরল জাভা প্রকল্পগুলির জন্য অফিশিয়াল আরকিটাইপ (অ্যাপাচের মাভেন স্টার্টিং গাইড এবং অ্যাপাচি মাভেন কুকবুক দ্বারা উল্লিখিত) হ'ল ম্যাভেন-আরচাইটিপ-কুইকস্টার্ট, বা org.apache.maven.archetyype: পূর্ণরূপে ম্যাভেন-আরচাইটিপ-কুইকস্টার্ট।

এটি, আইএমএইচওকে অবহেলিত হিসাবে বিবেচনা করা উচিত, কারণ এটি বেশ কয়েকটি দুর্বলতা ভোগ করে।

  • একটি গুরুত্বপূর্ণ সমস্যা হ'ল এটি এমন প্রকল্পগুলি তৈরি করে যা জুনিট ৪-এর উপর নির্ভর করে The বর্তমান সংস্করণ, জুনট 5, উল্লেখযোগ্যভাবে পৃথক হয়ে অন্য উন্নত এপিআইয়ের মধ্যে সরবরাহ করে।
  • গৌণ দুর্বলতাগুলি: এর ডিফল্ট সংস্করণটি 1.0-এসএনএপশট, যা প্রস্তাবিত এবং সাধারণ স্কিমটি অনুসরণ করতে 1.0.0-এসএনএপিএসএইচটি হওয়া উচিত OT
  • অন্য একটি ছোটখাটো দুর্বলতা: এটি একটি 1.7 জেভিএমের জন্য কনফিগার করা প্রকল্পগুলি তৈরি করে। আপনার যদি বিশেষত পুরানো ইনস্টলগুলি সমর্থন করার প্রয়োজন হয় তবে এটি উপযুক্ত হতে পারে তবে যুক্তিযুক্ত সাম্প্রতিক জেভিএমকে বেছে নেওয়া নতুন প্রকল্পগুলির জন্য আরও যুক্তিসঙ্গত ডিফল্ট নিয়ম। উদাহরণস্বরূপ, জাভা 8 ল্যাম্বডা এক্সপ্রেশনগুলি চালু করেছে, যা আপনি সম্ভবত বাদ দিতে চান না।

আমার আরকিটাইপও ডিফল্টরূপে লগিং সরবরাহ করে, যা আমি কার্যকর বলে মনে করি, সিসআউটের চেয়ে স্কেল ভাল এবং কোনও ক্ষতি করে না, এবং পেয়ারা, যা আমি মনে করি জাভাটিকে সমৃদ্ধ করে।

মাভেন কেন্দ্রীয়ের অন্যান্য কুইকস্টার্ট আরকিটাইপস

সম্ভব হলে প্রচেষ্টায় যোগ দিতে এবং অপ্রয়োজনীয় সদৃশতা এড়াতে, আমি সক্রিয়ভাবে অন্যান্য ধনু ধরণের সন্ধান করেছি যা আমার মতো একই লক্ষ্য রাখবে: একটি আধুনিক জাভা প্রকল্প সহজেই শুরু করার জন্য যুক্তিসঙ্গত খেলাপিগুলির সাথে একটি সহজ আরকিটাইপ সরবরাহ করুন। (এটি বেশিরভাগই ২০২০ সালের জুনের দিকে করা হয়েছিল।)

ইন্টারনেটে একটি সাধারণ অনুসন্ধান আমাকে ব্যবহারিক বিকাশকারীকে নিয়ে যায়। যোগাযোগ করা হলে তিনি আমাকে (ই-মেইলে) লিখেছিলেন যে তিনি নিয়মিতভাবে তার প্রত্নতত্ব নিয়ে কাজ করেন না এবং তাই এ জাতীয় প্রকল্পে সহযোগিতা অস্বীকার করতে পছন্দ করেন।

নেটে অনুসন্ধানগুলি যেমন অন্যান্য দরকারী ফলাফল প্রকাশ করে না, এবং যেহেতু আমি আমার প্রয়োজনের জন্য উপযুক্ত কোনও বিশেষ অনুসন্ধানের সরঞ্জাম খুঁজে পাইনি, আমি একটি সাধারণ আরকি টাইপ ব্রাউজার প্রয়োগ করেছি। এটি মাভেন সেন্ট্রালে উপলভ্য সমস্ত প্রত্নতাত্ত্বিকদের তালিকাবদ্ধ করে। ম্যানুয়ালি পর্যালোচনা করার মতো অনেকগুলি রয়েছে, সুতরাং, আমি যাদের গ্রুপআইডি এবং আর্টিফ্যাক্ট আইডি কমপক্ষে তিন বছর থেকেই বিদ্যমান ছিল এবং দীর্ঘ বছরের জন্য রক্ষণাবেক্ষণ করা প্রকল্পগুলি খুঁজে পাওয়ার প্রত্যাশায়, গত বছরের সময় আপডেট হয়েছিল, আমি মনে করি যেগুলি ইঙ্গিত করে আরও সম্ভবত একটি ভাল মানের প্রকল্প। (অবশ্যই এই ফিল্টারটি ভাল মানের প্রত্নতাত্ত্বিক বিষয়গুলি মিস করেছে যা বর্ণিত লক্ষ্যের সাথে পুরোপুরি মেলে; আমার জানার কোনও উপায় নেই point ঘটনাচক্রে, এই শিল্পীটি টাইপটি ফিল্টারটি পাস করতে পারে না কারণ আমি সময়ের সাথে এটির আর্টিক্যাক্ট আইড পরিবর্তন করেছি।)

তারপরে আমি তাদের পিওএম-তে প্রাপ্ত প্রত্নতাত্ত্বিক বর্ণনার ভিত্তিতে ফলস্বরূপ তালিকাটি ফিল্টার করেছিলাম এবং তাদের মধ্যে কয়েকটি প্রতিশ্রুতিবদ্ধ প্রত্নতাত্ত্বিকতাগুলির জন্য আরও একটি চেহারা (সরকারী ওয়েবসাইটে, সাধারণত) দিয়েছি। শুধুমাত্র com.github.ngeor:archetype-quickstart-jdk8উপযুক্ত প্রার্থী হিসাবে প্রকাশিত হয়েছে। তবে এর লেখক আমাকে লিখেছেন যে তিনি "আজকাল আরকিটাইপগুলিকে সত্যিই ব্যবহার / রক্ষণাবেক্ষণ করছেন না"।

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