মাভেন: লাইফসাইকেল বনাম ফেজ বনাম প্লাগিন বনাম লক্ষ্য [বন্ধ]


106

তুলনামূলকভাবে এখানে নতুন বিকাশকারী, যদিও আমি এটি অল্প সময়ের জন্য ব্যবহার করেছি, আমি আমার মাভেনের মূল বিষয়গুলি দৃ solid় করার আশা করছি। আমার সমস্যার অংশটি হ'ল পিঁপড়ার সাথে আমার কোনও অভিজ্ঞতা নেই , যা দেখে মনে হয় অনেকগুলি ব্যাখ্যা এসেছে। আমি টিউটোরিয়াল পড়ছি এবং দেখছি, এবং আমি একই শর্তগুলি শুনতে থাকি:

  • জীবনচক্র
  • পর্যায়
  • প্লাগ লাগানো
  • লক্ষ্য

আমি যা শিখেছি তা থেকে মনে হয় যে জীবনচক্রটি গুচ্ছের বিস্তৃত এবং পর্যায়, প্লাগইন এবং / অথবা লক্ষ্যগুলি দ্বারা তৈরি (বা সম্পূর্ণ))

প্রশ্ন : এই পদগুলি কীভাবে সম্পর্কিত এবং সর্বাধিক সাধারণ উদাহরণগুলি সম্পর্কে আপনি কোনও তথ্য সরবরাহ করতে পারেন?

আরও স্পষ্ট এবং মৌলিক, আরও ভাল!



ধন্যবাদ @ ড্রেজসি - বিশ্বাস করতে পারি না যে আমি আমার অনুসন্ধানে এটি পাইনি। আমি এখন এটি মাধ্যমে পড়তে হবে।
জেফ লেভাইন

2
সুতরাং, স্পষ্ট করার জন্য, লাইফসাইকেল = জীবনচক্র তৈরি করুন , যার মধ্যে তিন ধরণের রয়েছে: ডিফল্ট, পরিষ্কার এবং সাইট? অন্যান্য ব্যাখ্যা আমাকে ভেবেছিল সেখানে বিল্ড নামে একটি চতুর্থ জীবনচক্র রয়েছে ।
জেফ লেভাইন


3
খুব বিস্তৃত? এটি ম্যাভেনের মূল বেসিকগুলি নিয়ে উদ্বেগ প্রকাশ করে এবং এর কয়েকটি ভাল এবং বিস্তারিত উত্তর রয়েছে। একক মাভেন ট্যাগবিহীন মডারেটরদের এটি সিদ্ধান্ত নেওয়ার অনুমতি দেওয়া উচিত নয়।
গেরোল্ড ব্রোজার

উত্তর:


73

একজন ম্যাভেন জীবনচক্র একটি (বিমূর্ত) ধারণা যে কভার সব পদক্ষেপ (বা ভাল: সমস্ত ধাপ ম্যাভেন সমর্থন করার সিদ্ধান্ত নিয়েছে ডিজাইনার) যে একটি প্রকল্প উন্নয়ন জীবদ্দশায় ঘটতে আশা করা যায়। এই পদক্ষেপগুলি (বা পর্যায়) বলা হয় পর্যায়ক্রমে ম্যাভেন পরিভাষায় ।

একটি ম্যাভেন প্লাগইন লক্ষ্য সরবরাহকারী / সরবরাহকারীদের জন্য একটি ধারক লক্ষ্যগুলিতে বাস্তবায়িত কোড হ'ল আসল ওয়ার্কসওয়ার্স। ( এর মূলটি মাভেন কেবল প্লাগইন পরিচালনা এবং লক্ষ্যগুলি সম্পাদন করছে )। একটি প্লাগইন এর প্রতিটি লক্ষ্য আজীবন চক্রের যেকোন পর্যায়ে নির্ধারিত / আবদ্ধ করা যেতে পারে।

যখন মাভেনকে অনুরোধ করা হয় তখন mvn <phase> সমস্ত ধাপ (প্রতিটি সময়) পাস করে এবং সমস্ত লক্ষ্য নির্ধারণ করে (প্লাগইন দ্বারা সরবরাহিত) যা প্রদত্ত পর্যায়ে আগে এবং (এবং সহ) যে কোনও পর্যায়ের আবদ্ধ ছিল to যদি কোনও পর্যায়ে আবদ্ধ থাকে তবে কোনও লক্ষ্যই এটির সাথে আবদ্ধ না থাকে nothing তবে তবুও এই পর্বটি পার হয়ে গেছে।

অর্থাৎ আপনি মাভেনের একটি অন্তর্নির্মিত লাইফসাইকেলের মধ্যে "অতিরিক্ত পর্যায়" সন্নিবেশ করতে পারবেন না । তারা ইতিমধ্যে আছে, সর্বদা! আপনি তার নিজস্ব পর্যায়ক্রমে আপনার নিজের জীবনচক্রটি বিকাশ করতে পারতেন তবে এটি মাভেনকে যেমন ব্যবহার করা হয়েছে ঠিক ততটাই বাইরে।

লক্ষ্যগুলি সরাসরি সম্পাদনও করা যেতে পারে, যা আপনি mvnকোনও ধাপ বা লক্ষ্য ছাড়াই দৌড়ানোর সময় বলেছিলেন [লাইন ব্রেক সহ এবং এখানে পাঠযোগ্যতার জন্য সংক্ষিপ্তকরণ]:

You must specify a valid lifecycle phase or a goal in the format

<plugin-prefix>:<goal> or

<plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>.

Available lifecycle phases are:

... see actual output or 'Maven, Introduction to the Build Lifecycle' at 'References' below ...

তথ্যসূত্র:

আপনি যদি কখনও ভেবে থাকেন যে মাওমেন কীভাবে পিওএম-এ কোনও লক্ষ্য বাঁধাই না করে কী করতে জানে সেটির default-bindings.xmlশেষে একটি লিঙ্ক রয়েছে যার মধ্যে রয়েছে <Your Maven installation>/lib/maven-core-x.y.z.jar/META-INF/plexus/default-bindings.xml

অন্তর্নির্মিত লাইফাইসাইকেলের জন্য ধাপগুলি ( পরিষ্কার , ডিফল্ট , সাইট ) এর <Your Maven installation>/lib/maven-core-x.y.z.jar/META-INF/plexus/components.xmlঅধীনে ঘোষণা করা হয়েছে .../<component>/<role>org.apache.maven.lifecycle.Lifecycle


41

মাভেন: লাইফসাইকেল বনাম ফেজ বনাম প্লাগিন বনাম লক্ষ্য al

এই থ্রেডে অনুপস্থিত আরেকটি মাত্রার গ্রানুলারিলিটি স্পষ্ট করতে দেরি করে উত্তর দেওয়া: মৃত্যুদণ্ড কার্যকর করা (একটি লক্ষ্য), যা একটি মাভেন বিল্ডের ক্ষুদ্রতম ইউনিট।

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

একটি চিত্র আমি পুরোপুরি আবার শুরু করার জন্য প্রস্তুত এখানে চিত্র বর্ণনা লিখুন

এবং প্রকৃতপক্ষে এভাবেই মেভেন নিজের বিল্ড লগের অনন্য স্ট্রিংয়ের মাধ্যমে এটিকে (কাজের ক্ষুদ্রতম একক) এটি দেখায়:

plugin-artifactId:plugin-version:plugin-goal (goal-execution-id) @ project-name

উদাহরণস্বরূপ, আমাদের আছে:

[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ sample-project ---

এর প্রকৃত অর্থ (বিভিন্ন স্তরের গ্রানুলারিটির মাধ্যমে):

  • compileপর্যায়ের সময় (দুর্ভাগ্যক্রমে উল্লেখ করা হয়নি)>
  • আমি মাভেন কম্পাইলার প্লাগইন ( artifactIdএবং version)> এ আমন্ত্রণ জানাচ্ছি
  • আমি এর compileলক্ষ্য> কে আমন্ত্রণ জানাচ্ছি
  • default-compileকার্যকর হিসাবে নির্ধারিত

এটি অনন্য কারণ আপনার প্রকৃতপক্ষে একই লক্ষ্য (একই প্লাগইনের) বিভিন্ন ধাপে বা একই পর্যায়ে আবদ্ধ থাকতে পারে তবে বিভিন্ন মৃত্যুদণ্ডে (যা বিভিন্ন কনফিগারেশনের সাথে রয়েছে)। maven-compiler-pluginউদাহরণস্বরূপ, এছাড়াও সময় ব্যবহার করা হয় test-compileফেজ কম্পাইল পরীক্ষা কোডে (একটি পৃথক পর্যায়) (তার মাধ্যমে testCompileএকটি ভিন্ন সম্পাদনের লক্ষ্য) ( default-testCompile)। আপনি POM (এবং সম্ভাব্যভাবে একটি আলাদা কনফিগারেশন) নির্দিষ্ট করেছেন এমন একটি নির্বাহের দ্বারা নির্ধারিত একটি ভিন্ন ধাপের সময় কিছু স্বয়ংক্রিয়-উত্পন্ন কোডও সংকলন করতে পারেন (একই প্লাগিন এবং লক্ষ্য ব্যবহার করে) could

মাভেন প্যাকেজিং বাইন্ডিংয়ের মাধ্যমে ডিফল্ট মৃত্যুদণ্ড কার্যকর করা হয় , এটি ডিফল্টরূপে (এবং কনফিগারেশনের অধীনে কনভেনশন প্রয়োগ করে) মাভেন ইতিমধ্যে নির্দিষ্ট পর্যায়ে নির্দিষ্ট লক্ষ্যগুলি (স্ট্যান্ডার্ড প্লাগিনগুলির) আহ্বান করে। এই ডিফল্ট আমন্ত্রণগুলির ফাঁসি আইডিকে নির্দিষ্ট কনভেনশন অনুযায়ী সংজ্ঞায়িত করা হয় ।

এটিও ব্যাখ্যা করে যে আপনি যদি সত্যিই কোনও মাভেন বিল্ডের একটি ডিফল্ট আচরণ (বাঁধাই করা) ওভাররাইড করতে চান তবে একই প্লাগইনটির জন্য আপনার POM এ ঠিক একই এক্সিকিউশন আইডি নির্দিষ্ট করতে হবে (ওভাররাইড)। উদাহরণস্বরূপ, আপনি maven-compiler-pluginএকই default-compileআইডির সাথে একটি কার্যকরকরণের সংজ্ঞা কেবল সংকলন এড়িয়ে যেতে পারেন তবে অস্তিত্বহীন পর্যায়ে আবদ্ধ (বা খালি) to

এটি সংক্ষিপ্ত করার জন্য : একটি নির্বাহী ম্যাভেনকে জানায় যে কোন ধাপের মধ্যে কোন কনফিগারেশন সহ কোন লক্ষ্য (গুলি) সম্পাদন করা উচিত।

কিছু মৃত্যুদণ্ড ডিফল্ট (ডিফল্ট বাইন্ডিং) দ্বারা সরবরাহ করা হয়, যা ব্যাখ্যা করে যে কেবলমাত্র 6 লাইনের মেনেন ন্যূনতম পোম ইতিমধ্যে কেন অনেক কিছু করতে পারে (সংকলন, পরীক্ষা, প্যাকেজ, ইত্যাদি): নির্দিষ্ট পর্যায়ে স্ট্যান্ডার্ড প্লাগইনের লক্ষ্য নির্বাহ: এটি কনভেনশন শেষ কনফিগারেশন. তারপরে, কনফিগারেশনের মাধ্যমে আপনি ইতিমধ্যে কনফিগার করা প্লাগইনগুলির আচরণ তৈরি করতে বা প্রভাবিত করতে স্টাফ (ফাঁসি) যুক্ত করতে পারেন (এই ক্ষেত্রে কোনও বিভাগ নেই, তবে যথেষ্ট হবে)।pom.xmlexecutionsconfiguration

হ্যাঁ, আপনি বিল্ড চক্র (এবং তাদের পর্যায়গুলি) এড়িয়ে যেতে পারেন এবং সরাসরি লক্ষ্যগুলি (প্লাগইনগুলির) শুরু করতে পারেন। নিম্নলিখিতটি কল্পনা করুন:

mvn compiler:compile
mvn compiler:testCompile
mvn surefire:test
mvn jar:jar

(দ্রষ্টব্য: আপনি কেবলমাত্র একটি কলে ইনলাইন আবেদন করতে পারেন)

এখানে আমরা অ্যাপ্লিকেশন কোড, পরীক্ষার কোড, পরীক্ষা ও প্যাকেজ কার্যকর করবো: কীভাবে ম্যানুয়াল, ত্রুটি-প্রবণ, পুনরাবৃত্তি এবং সময়সাপেক্ষ হবে তা কল্পনা করুন। কনফিগারেশন সম্পর্কিত কনভেনশন আমাদের সহায়তা করে: ম্যাভেন জীবনচক্র এবং পর্যায়গুলি তৈরির সাথে পরিচয় করিয়ে দেয় । ডিফল্ট জীবনচক্র (কোনও নাম ছাড়াই, এটি ডিফল্ট নয়) সেরা অনুশীলন এবং কনভেনশন (মাভেনের মন্ত্র) এর উপর ভিত্তি করে বিভিন্ন পর্যায়ের স্তর সরবরাহ করে।
যদি আপনি উপরের মতো একই অর্জন করতে চান তবে কেবল চালান: mvn packageএবং এটি স্বয়ংক্রিয়ভাবে আপনার প্রকল্পটি সংকলন, পরীক্ষা এবং প্যাকেজ করবে। কিভাবে? চালু প্লাগইন। এটি হ'ল পর্যায়গুলি হ'ল প্লাগইন (লক্ষ্য) নির্বাহের অর্থবহ এবং কনফিগারযোগ্য সেট। এটিকে আরও মানসম্পন্ন করার জন্য, প্রতিটি ধাপের জন্য মাভেন প্রথমে যে কোনও পূর্ববর্তী পর্বকে আহ্বান জানাবে, উদাহরণস্বরূপ যদি আপনি পরীক্ষা করতে চান তবে আপনি নিশ্চিত হন যে আপনি প্রথমে সংকলন করেছেন।

পিএস নোট করুন যে এর জন্য বেশ কয়েকটি লক্ষ্য নির্দিষ্ট করার সময় execution, আপনি এখনও বিল্ড লগে দুটি পৃথক লক্ষ্য (একই আইডির সাথে) দুটি পৃথক মৃত্যুর জন্য পরিষ্কারভাবে দেখতে পাবেন (অতএব, এখনও অনন্য টিউপল)।


18

সন্দীপ জিন্দাল এবং প্রেমরাজকে ক্রেডিট (এখান থেকে ম্যাভেন গোল এবং পর্যায়গুলি কী এবং তাদের পার্থক্য কী? )। তাদের ব্যাখ্যা আমাকে বুঝতে সাহায্য করে।

আমি এখানে কিছু পূর্ণ কোড উদাহরণ তৈরি করেছি এবং কিছু সাধারণ ব্যাখ্যা এখানে https://www.surasint.com/maven- Life-cycle-phase-and-goal-easy- exPLined/ এ তৈরি করেছি । আমি মনে করি এটি অন্যকে বুঝতে সাহায্য করতে পারে এবং সরাসরি কিছু চেষ্টা করতে পারে।

সংক্ষেপে সংক্ষেপে, আপনার একবারে তিনটিই বোঝার চেষ্টা করা উচিত নয়, প্রথমে আপনাকে এই গ্রুপগুলির মধ্যে সম্পর্কটি বোঝা উচিত:

  • লাইফ সাইকেল বনাম ফেজ
  • প্লাগিন বনাম লক্ষ্য

1. লাইফ সাইকেল বনাম ফেজ

লাইফ সাইকেল ক্রমান্বয়ে পর্যায়ের সংগ্রহ , এখানে লাইফ সাইকেল রেফারেন্স দেখুন । আপনি যখন কোনও পর্যায়ে কল করবেন, এটি এর আগে সমস্ত পর্বে কল করবে।

উদাহরণস্বরূপ, পরিষ্কার জীবনচক্রের 3 টি পর্যায় রয়েছে ( প্রাক-পরিষ্কার, পরিষ্কার, পরিচ্ছন্ন )।

mvn clean

এটি প্রাক-পরিষ্কার এবং পরিষ্কার কল করবে ।

২. প্লাগইন বনাম লক্ষ্য

লক্ষ্যটি প্লাগইনের কোনও ক্রিয়াকলাপের মতো । সুতরাং প্লাগইন যদি শ্রেণি হয় তবে লক্ষ্যটি একটি পদ্ধতি।

আপনি এই মত একটি লক্ষ্য কল করতে পারেন:

mvn clean:clean

এর অর্থ "ক্লিন প্লেন-এ ক্লিন লক্ষ্যকে কল করুন" (এখানে পরিষ্কার পর্বের সাথে কোনও সম্পর্ক নেই "

৩. এখন পর্যায় ও লক্ষ্যগুলির মধ্যে সম্পর্ক:

পর্যায়ে (পূর্ব) লক্ষ্য (গুলি) এর লিঙ্ক থাকতে পারে । উদাহরণস্বরূপ, সাধারণত পরিষ্কার লক্ষ্যটি পরিষ্কার লক্ষ্যের সাথে লিঙ্ক করে। সুতরাং, আপনি যখন এই আদেশটি কল করবেন:

mvn clean

এটি প্রাক-ক্লিন ফেজ এবং পরিষ্কার পর্বকে কল করবে যা পরিষ্কার: পরিষ্কার লক্ষ্যের সাথে লিঙ্ক করে।

এটি প্রায় একই রকম:

mvn pre-clean clean:clean

1
@ এবং ৩. আইএমএইচও, clean:cleanউদাহরণের জন্য সেরা পছন্দ নয়। এখানে 4 টি আইটেম রয়েছে clean(লাইফাইসাইকেল, ফেজ, প্লাগইন, লক্ষ্য) যা বিভ্রান্তিকর হতে পারে বিশেষত নতুনদের জন্য (আমার মনে আছে এটি শুরুতে আমার জন্য ছিল)। @ 3. ক্রিয়াপদ "লিঙ্ক" ভাল পছন্দ নয়, আইএমএইচও। অফিশিয়াল মাভেন শব্দটি " বাইন্ড "।
গেরোল্ড ব্রোজার

@GeroldBroser। সম্পূর্ণরূপে পরিষ্কার সাথে পরিষ্কার: পরিষ্কার। আমি লিঙ্কটিতে আমার সম্পূর্ণ ব্যাখ্যায় ব্যাখ্যা এবং সতর্ক করেছিলাম। আমি সেই সতর্কতাটি এখানেও অনুলিপি করব। যে কারণে আমি এটি ব্যবহার করেছি কারণ এই বিভ্রান্তিকর শব্দটি সম্পর্কে লোকদের জানানো ভাল এবং বিশেষত, সরকারী খাঁটি দলিলটি এটি ব্যবহার করছে এবং এটি স্পষ্টভাবে ব্যাখ্যা করে। এবং হ্যাঁ, এটি আমাকেও বিভ্রান্ত করেছিল। যাইহোক, মন্তব্যের জন্য অনেক ধন্যবাদ
সুরসিন তানচরওন

টাইপো: অফিসিয়াল ম্যাভেন ডকুমেন্টটি এটি ব্যবহার করছে এবং এটি পরিষ্কারভাবে ব্যাখ্যা করে না
সুরসিন তানচরওন

17

এবং নির্লিপ্তভাবে অন্য চিত্র

  • হলুদ আয়তক্ষেত্র হিসাবে লাইফসাইকেলগুলি
  • দশা নীল আয়তক্ষেত্র হিসাবে lifecycles এর "callable" গাঢ় নীল পর্যায়ক্রমে (অর্থাত hypenation সঙ্গে পর্যায়ক্রমে সাধারণত কম্যান্ড লাইন থেকে বলা হয় না হিসাবে তারা একটি ভাল-সংজ্ঞায়িত রাজ্যের প্রকল্পের ছেড়ে করার জন্য ডিজাইন করা নাও হতে পারে)।
  • নীল লজেন্স হিসাবে লক্ষ্যগুলি । সংযুক্তি / আবদ্ধ "ধাপ -> লক্ষ্য" দেখানো হল "জার" প্যাকেজিং মোডগুলির মধ্যে একটি । প্রতিটি পর্যায়ে এটির সাথে আবদ্ধ লক্ষ্য থাকতে পারে। এটি অবশ্যই প্রতিটি লাইফাইসাইকেলের জন্য ধারণ করে, যদিও বাইন্ডিংগুলি কেবলমাত্র "ডিফল্ট" জীবনচক্রের জন্য প্রদর্শিত হয়।
  • ধূসর ক্লিপড আয়তক্ষেত্র হিসাবে প্লাগইনগুলি । প্লাগইনগুলি লক্ষ্যগুলি সরবরাহ করে যা পর্যায়ক্রমে আবদ্ধ হতে পারে।

ম্যাভেন লাইফেসাইক্যালস, পর্যায়ক্রমে, লক্ষ্য, প্লাগইন


গ্রাফিক্স ফাইলটি (ফ্রি ইইডি সম্পাদক দ্বারা সম্পাদিত) github.com/dtonhofer/diagrams এ উপলব্ধ
ডেভিড টনহোফার

1) "গা dark় নীল " যে "কলযোগ্য" পর্যায়ক্রমে " আপনি ঠিক কী বোঝাতে চান ? প্রতিটি মাভেন পর্বটি "কলযোগ্য" (যদিও আমি বরং এটি অদৃশ্য বলি , যেহেতু কোনও পর্বের ডাক দিয়ে সরাসরি কোনও কোড বলা হয় না)। অথবা আপনি কি ধাপগুলি " কলযোগ্য " ডাকেন যার একটি লক্ষ্য আবদ্ধ আছে (ডিফল্টরূপে)? এমনকি যদি এটি সত্য হয় না, আপনি যদি তাকান validate, initializeএবং verify
জেরোড ব্রোজার


3) modello:javaএর Modello প্লাগইন দৃশ্যত ডোমেইন-নির্দিষ্ট। একটি পর্বে প্লাগইন এর লক্ষ্যকে বাঁধাই যে কোনও পর্যায়ের জন্য রাখে।
জেরোড ব্রোজার

@ জেরলডব্রোজার মন্তব্য অনুসারে স্থির করেছেন। "কলযোগ্য" এর অর্থ হল যে কেউ কমান্ড লাইন থেকে কল করতে পারে এবং প্রকল্পটি বৈধ অবস্থায় থাকতে পারে বলে আশা করতে পারে। মধ্যে কোন অর্থপূর্ণ পার্থক্য নেই কলিং এবং invoking এবং কলে কি হয় ম্যাভেন ভূমিকা ব্যবহার করে।
ডেভিড টোনহোফার

12

উত্স এটি সত্যই ভাল টিউটোরিয়াল

লাইফেসাইকেলস, ​​লাইফসাইकल পর্যায়সমূহ, প্লাগইনস এবং প্লাগইন লক্ষ্যগুলি মাভেনের মূল বিষয়।

  • মাভেন কমান্ড এমভিএন আর্গুমেন্ট হিসাবে কেবল লাইফসাইकल ফেজ বা প্লাগইন লক্ষ্যকে গ্রহণ করতে পারে।
  • মাভেন তিনটি লাইফসাইকেল নিয়ে আসে - ডিফল্ট, ক্লিন এবং সাইট।
  • প্রতিটি জীবনচক্র জীবনচক্র পর্যায়ক্রমে গঠিত এবং সব মিলিয়ে ২৮ টি পর্যায় রয়েছে - ডিফল্ট ২১ ( বৈধকরণ, ..., সংকলন, ..., প্যাকেজ, ..., ইনস্টল, মোতায়েন ), ক্লিন 3 ( প্রাক-পরিষ্কার, পরিষ্কার, পোস্ট-ক্লিন ) এবং সাইট 4 ( প্রাক-সাইট, সাইট, পোস্ট-সাইট, সাইট-মোতায়েন )।
  • যখন mvn কমান্ড ব্যবহার করে একটি লাইফসাইकल পর্ব চালু করা হয়, সমস্ত পূর্ববর্তী পর্যায়গুলি একের পর এক ক্রমান্বয়ে সম্পাদিত হয়।
  • নিজেরাই লাইফসাইকেল পর্যায়ক্রমে কিছু কাজ সম্পাদনের কোনও ক্ষমতা রাখে না এবং তারা কাজটি সম্পাদনের জন্য প্লাগিনগুলির উপর নির্ভর করে।
  • প্রকল্প এবং প্যাকেজিংয়ের উপর নির্ভর করে, মাভেন বিভিন্ন প্লাগইন লক্ষ্যকে লাইফসাইकल পর্যায় এবং তাদের উপর অর্পিত টাস্কটি সম্পাদনের লক্ষ্যে আবদ্ধ করে।

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

mvn-প্লাগিন-প্যাকেজ-লক্ষ্য


1
আপনার উল্লিখিত উপাদানগুলি বেশ ভাল। ধন্যবাদ!
উইলিয়াম কিনান

@ " মাভেন কমান্ড এমভিএন আর্গুমেন্ট হিসাবে কেবল লাইফসাইकल ফেজ বা প্লাগইন লক্ষ্যকে গ্রহণ করতে পারে " "সঠিক নয়। এটি বিকল্পগুলিও গ্রহণ করে ।
গেরোল্ড ব্রোজার

" যখন আমরা একটি জাভা প্রজেক্টে" এমভিএন প্যাকেজ "চালাই, মাভেন প্লাগইন লক্ষকে লাইফসাইকেল পর্যায়ক্রমে বাঁধে " সত্য নয়। গোল বাইন্ডিং দৌড়ানোর অনেক আগে ঘটে mvn ...: ডিফল্ট-বাইন্ডিংসএক্সএমএল বা কোনও পিওএম এ এবং এটি ম্যাভেন দ্বারা নয়, একটি মানব দ্বারা সম্পন্ন হয়।
জেরোল্ড ব্রোজার

7

সুতরাং এখানে বর্ণিত হিসাবে আরও কিছুটা ব্যাখ্যা করতে

ম্যাভেন বিল্ডগুলি জীবনচক্রগুলিতে বিভক্ত হয়ে থাকে:

  • পরিষ্কার
  • বিল্ড (ডিফল্ট)
  • সাইট

এই প্রতিটি চক্র পর্যায়ক্রমে বিভক্ত। উদাহরণস্বরূপ বিল্ডটি পর্যায়ক্রমে বিভক্ত:

  • সংস্থান প্রস্তুত
  • কম্পাইল
  • প্যাকেজ
  • ইনস্টল

দশা পূর্বে চালানোর লক্ষ্য আছে প্রাক অথবা পরে পোষ্ট- একটি ফেজ, উদাহরণস্বরূপ:

  • প্রাক-পরিষ্কার - পরিষ্কার পর্বের আগে কার্যকর করা হবে
  • পোস্ট-ক্লিন - পরিষ্কার পর্বের পরে কার্যকর করা হবে

আপনি যদি পছন্দ করেন তবে অতিরিক্ত "sertedোকানো" পর্যায় হিসাবে লক্ষ্যগুলি দেখতে পারেন। এখানে পড়ুন বা বিশদ জন্য @ জেরল্ডস উত্তর দেখুন।


1
এই উত্তর সম্পূর্ণরূপে সঠিক নয়। আমার উত্তর দেখুন ।
গেরোল্ড ব্রোজার

বাচ্চা 3 বছর আপনি এই প্রশ্নের উত্তর দিয়েছিলেন ... এবং এখনও এটিকে ছাড়তে দিচ্ছেন না .. আপনি জিতেছেন ... এখন এগিয়ে যান।
Drejc

এটি জয়ের কথা নয়। আপনি যদি পুরানো প্রশ্ন, উত্তর এবং মন্তব্যগুলি পরে সংশোধন করেন তবে এগুলি সংশোধন করবেন না?
জেরোড ব্রোজার

3

লাইফসাইকেল বনাম পর্যায়সমূহ: Life Cycle এর একটি সংগ্রহ phases। আপনি যখন কোনও পর্যায়ে কল করবেন, এটি তার আগে আসা সমস্ত পর্যায়ের কলও করবে। মাভেন 3 বিল্ট-ইন বিল্ড লাইফ চক্রগুলি নিয়ে আসে:

  1. ক্লিন লাইফাইসাইকেল - এর মধ্যে রয়েছে প্রকল্পটি পরিষ্কার করা (নতুন করে নির্মাণ ও স্থাপনার জন্য)
  2. ডিফল্ট / বিল্ডিং জীবনচক্র- এটি প্রকল্পের সম্পূর্ণ মোতায়েন পরিচালনা করে
  3. সাইট লাইফাইসাইকেল - এটি প্রকল্পের জাভা ডকুমেন্টেশন জেনারেট করে। এখানে চিত্র বর্ণনা লিখুন

ক্লিন লাইফাইসাইকেলের 3 টি পর্যায় রয়েছে: প্রাক-পরিষ্কার, পরিষ্কার এবং পোস্ট-ক্লিন। ডিফল্ট এবং সাইট লাইফসাইকেলের পর্যায়গুলি চিত্রের মতো দেখানো হয়েছে।


আপনার শেষ অনুচ্ছেদ বিভ্রান্তিকর। বিশেষ করে প্রথম এবং শেষ বাক্যটি। লক্ষ্য এবং পর্যায়গুলি সম্পূর্ণ আলাদা জিনিস। তাদের অবশ্যই বিভ্রান্ত করবেন না কারণ তাদের কারও কারও অভিন্ন নাম রয়েছে। পুনরায় লক্ষ্যগুলি উপরের ছবিতে আপনি যে পর্যায়গুলি দেখছেন সেগুলি "": ছবিটিতে একটিও লক্ষ্য উল্লেখ করা হয়নি। এগুলি সব পর্যায়ক্রমে । পুনরায় " আপনি যখন নির্দিষ্ট লক্ষ্যটি সম্পাদন করতে হয় তখন আপনি পর্বের নামটি 'লক্ষ্য' হিসাবে লেখেন " ": যদিও কোনও প্লাগইনের লক্ষ্য স্পষ্টভাবে চালানো সম্ভব হয় তবে কোনও নির্দিষ্ট ধাপের সাথে একটি বিল্ড আপ সম্পাদন করা সম্ভব mvn <phase>। আমার উত্তর এখানে দেখুন।
জেরোড ব্রোজার

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