এমভিএন আরকিটাইপ: জেনারেট অনেকগুলি বিকল্প সরবরাহ করে এবং আমি জুনিট টেস্টের ক্ষেত্রে একটি সাধারণ জাভা ইউটিলিটি তৈরি করতে চাইছি। আমি জানতে চাই যে আমার এখানে কোন প্রত্নতাত্ত্বিক ব্যবহার করা উচিত?
এমভিএন আরকিটাইপ: জেনারেট অনেকগুলি বিকল্প সরবরাহ করে এবং আমি জুনিট টেস্টের ক্ষেত্রে একটি সাধারণ জাভা ইউটিলিটি তৈরি করতে চাইছি। আমি জানতে চাই যে আমার এখানে কোন প্রত্নতাত্ত্বিক ব্যবহার করা উচিত?
উত্তর:
আপনি যখন এটি করেন mvn archetype:generate
, একটি কোঁকড়া বন্ধনী বন্ধ করে একটি ডিফল্ট নির্বাচন উপস্থিত হয় ()
, উদাহরণস্বরূপ (1274)
, যদি আপনি # 1274 কী তা দেখতে স্ক্রোল করে থাকেন, তবে সাধারণ জাভা প্রকল্পগুলি করার পরে সাধারণত এটি চেষ্টা করা বা শুরু করার জন্য ডিফল্ট জাভা আরকিটাইপ হয় so নির্বাচন করা নিরাপদ।
380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
org.apache.maven.archetypes:maven-archetype-quickstart:1.1
আমি দুটি আরকিটাইপ ব্যবহার করি। এটি নির্ভর করে আপনি কী ধরণের অ্যাপ্লিকেশন তৈরি করবেন।
আপনি একটি ওয়েব অ্যাপ্লিকেশন চান, ব্যবহার ম্যাভেন-আদিরূপ-ওয়েবঅ্যাপ্লিকেশনটি , অথবা যদি আপনি একটি সহজ অ্যাপ্লিকেশন ব্যবহার করতে চান, ম্যাভেন-আদিরূপ-দ্রুতশুরু । এগুলি দরকারী কারণ আপনি কোনও সমস্যা ছাড়াই এগুলি প্রসারিত করতে সক্ষম হবেন।
আমি নীচের মত কমান্ড ব্যবহার করছি:
mvn archetype:generate -Dfilter=org.apache.maven.archetypes:
আমি কেবলমাত্র গ্রুপআইডি থেকে আকৃতির টাইপের একটি সংক্ষিপ্ত তালিকাorg.apache.maven.archetypes
পাব। শুরু হচ্ছে জন্য ভাল বেশী maven-archetype-quickstart
এবং maven-archetype-webapp
আমার পূর্বসুরীদের মত জানান।
mvn archetype:generate -DgroupId=com.example -DartifactId=foobar -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
তথ্যসূত্র: জাভা মাভেন প্রজেক্ট কমান্ড লাইন তৈরি করুন
আমার মনে হয় আপনার ব্যবহার করা উচিত maven-archetype-simple
সম্পাদনা
মভেন ডকুমেন্টেশন অনুসারে :
maven-archetype-quickstart
একটি আরকিটাইপ যা একটি নমুনা মাভেন প্রকল্প ধারণ করে।maven-archetype-simple
একটি আরকিটাইপ যা একটি সাধারণ মাভেন প্রকল্প ধারণ করে।maven-archetype-simple
আমার একিলেপস সিলেকশনে দেখি না, তবে দেখতে পাচ্ছি maven-archetype-quickstart
। তারা কি একই?
pom.xml
ম্যানুয়ালি সম্পাদনা করতে এবং কমান্ড প্রম্পট থেকে কমান্ড লাইন চালনা করতে পছন্দ করি ।
আমি একটি খুব সাধারণ 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 থেকে
ব্যবহারিক বিকাশকারী থেকে আপনি যে কোনও মৌলিক ব্যবহার করতে পারেন:
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0
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
জন্য?
archetypeArtifactId
।
maven-archetype-quickstart একটি আরকি টাইপ যা একটি নমুনা মাভেন প্রকল্প ধারণ করে। maven-archetype-simple একটি আরকিটাইপ যা একটি সাধারণ মাভেন প্রকল্প ধারণ করে।
যদি ত্রুটি পান তবে এটি গ্রহণে মভেন আরকি টাইপ ক্যাটালগ যুক্ত করে এটি ঠিক করে। পদক্ষেপ নীচে সরবরাহ করা হয়:
উইন্ডো খুলুন> পছন্দসমূহ> মেভেন> আরকিটাইপস
Add Remote Catalog
নিম্নলিখিত ক্লিক করুন এবং যুক্ত করুন:ক্যাটালগ ফাইল: http://repo1.maven.org/maven2/archetype-catolog.xml
বর্ণনা: মাভেন ক্যাটালগ
দ্রষ্টব্য: ইন্টারনেট সংযোগ আপনার প্রথম বড় প্রকল্পের সময়কালীন নির্মাণের প্রয়োজন।
ডিফল্ট আরকিটাইপ নম্বরটি এখন 1092 1092: রিমোট -> org.apache.maven.archetyype: মাভেন-আরচাইটিপ-কুইকস্টার্ট (একটি আরকিটাইপ যা একটি নমুনা মাভেন প্রকল্প ধারণ করে))
আপনি জাভা আরকিটাইপ বিবেচনা করতে চাইতে পারেন : জাভিত পরীক্ষা সহ সেরা অনুশীলনগুলি অনুসরণ করে একটি জাভা প্রকল্প দ্রুত শুরু করার জন্য এটির যুক্তিসঙ্গত ডিফল্ট রয়েছে। আমি এটির আধুনিক উত্তরসূরি হিসাবে কল্পনা করেছি maven-archetype-quickstart
।
উদাহরণ: mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false
।
দাবি অস্বীকার: আমি লেখক।
বিকল্প সম্পর্কে আরও তথ্যের জন্য, এখানে সেই প্রকল্পের README এর একটি অংশ রয়েছে (এটি এখানে অনুলিপি করা থেকে আরও লিঙ্ক সরবরাহ করে)।
অফিসিয়াল কুইকস্টার্ট আরকিটাইপ
সরল জাভা প্রকল্পগুলির জন্য অফিশিয়াল আরকিটাইপ (অ্যাপাচের মাভেন স্টার্টিং গাইড এবং অ্যাপাচি মাভেন কুকবুক দ্বারা উল্লিখিত) হ'ল ম্যাভেন-আরচাইটিপ-কুইকস্টার্ট, বা org.apache.maven.archetyype: পূর্ণরূপে ম্যাভেন-আরচাইটিপ-কুইকস্টার্ট।
এটি, আইএমএইচওকে অবহেলিত হিসাবে বিবেচনা করা উচিত, কারণ এটি বেশ কয়েকটি দুর্বলতা ভোগ করে।
আমার আরকিটাইপও ডিফল্টরূপে লগিং সরবরাহ করে, যা আমি কার্যকর বলে মনে করি, সিসআউটের চেয়ে স্কেল ভাল এবং কোনও ক্ষতি করে না, এবং পেয়ারা, যা আমি মনে করি জাভাটিকে সমৃদ্ধ করে।
মাভেন কেন্দ্রীয়ের অন্যান্য কুইকস্টার্ট আরকিটাইপস
সম্ভব হলে প্রচেষ্টায় যোগ দিতে এবং অপ্রয়োজনীয় সদৃশতা এড়াতে, আমি সক্রিয়ভাবে অন্যান্য ধনু ধরণের সন্ধান করেছি যা আমার মতো একই লক্ষ্য রাখবে: একটি আধুনিক জাভা প্রকল্প সহজেই শুরু করার জন্য যুক্তিসঙ্গত খেলাপিগুলির সাথে একটি সহজ আরকিটাইপ সরবরাহ করুন। (এটি বেশিরভাগই ২০২০ সালের জুনের দিকে করা হয়েছিল।)
ইন্টারনেটে একটি সাধারণ অনুসন্ধান আমাকে ব্যবহারিক বিকাশকারীকে নিয়ে যায়। যোগাযোগ করা হলে তিনি আমাকে (ই-মেইলে) লিখেছিলেন যে তিনি নিয়মিতভাবে তার প্রত্নতত্ব নিয়ে কাজ করেন না এবং তাই এ জাতীয় প্রকল্পে সহযোগিতা অস্বীকার করতে পছন্দ করেন।
নেটে অনুসন্ধানগুলি যেমন অন্যান্য দরকারী ফলাফল প্রকাশ করে না, এবং যেহেতু আমি আমার প্রয়োজনের জন্য উপযুক্ত কোনও বিশেষ অনুসন্ধানের সরঞ্জাম খুঁজে পাইনি, আমি একটি সাধারণ আরকি টাইপ ব্রাউজার প্রয়োগ করেছি। এটি মাভেন সেন্ট্রালে উপলভ্য সমস্ত প্রত্নতাত্ত্বিকদের তালিকাবদ্ধ করে। ম্যানুয়ালি পর্যালোচনা করার মতো অনেকগুলি রয়েছে, সুতরাং, আমি যাদের গ্রুপআইডি এবং আর্টিফ্যাক্ট আইডি কমপক্ষে তিন বছর থেকেই বিদ্যমান ছিল এবং দীর্ঘ বছরের জন্য রক্ষণাবেক্ষণ করা প্রকল্পগুলি খুঁজে পাওয়ার প্রত্যাশায়, গত বছরের সময় আপডেট হয়েছিল, আমি মনে করি যেগুলি ইঙ্গিত করে আরও সম্ভবত একটি ভাল মানের প্রকল্প। (অবশ্যই এই ফিল্টারটি ভাল মানের প্রত্নতাত্ত্বিক বিষয়গুলি মিস করেছে যা বর্ণিত লক্ষ্যের সাথে পুরোপুরি মেলে; আমার জানার কোনও উপায় নেই point ঘটনাচক্রে, এই শিল্পীটি টাইপটি ফিল্টারটি পাস করতে পারে না কারণ আমি সময়ের সাথে এটির আর্টিক্যাক্ট আইড পরিবর্তন করেছি।)
তারপরে আমি তাদের পিওএম-তে প্রাপ্ত প্রত্নতাত্ত্বিক বর্ণনার ভিত্তিতে ফলস্বরূপ তালিকাটি ফিল্টার করেছিলাম এবং তাদের মধ্যে কয়েকটি প্রতিশ্রুতিবদ্ধ প্রত্নতাত্ত্বিকতাগুলির জন্য আরও একটি চেহারা (সরকারী ওয়েবসাইটে, সাধারণত) দিয়েছি। শুধুমাত্র com.github.ngeor:archetype-quickstart-jdk8
উপযুক্ত প্রার্থী হিসাবে প্রকাশিত হয়েছে। তবে এর লেখক আমাকে লিখেছেন যে তিনি "আজকাল আরকিটাইপগুলিকে সত্যিই ব্যবহার / রক্ষণাবেক্ষণ করছেন না"।