মাভেনে "পম" প্যাকেজিং কী?


175

টমক্যাট সার্ভারে সংকলন করতে এবং স্থাপন করার জন্য আমাকে একটি মাভেন প্রকল্প দেওয়া হয়েছিল। আমি আজকের আগে কখনও মাভেন ব্যবহার করিনি, তবে আমি বেশ খানিকটা গুগল করছি। দেখে মনে হচ্ছে pom.xmlএই প্রকল্পের শীর্ষ স্তরের ফাইলগুলিতে প্যাকেজিং ধরণের সেট রয়েছে pom

mvn installএই অ্যাপ্লিকেশনটি মোতায়েন করার পরে আমার কী করা উচিত ? আমি warকোথাও বা অন্য কোনও ফাইল সন্ধান করতে সক্ষম হবার প্রত্যাশা করছিলাম তবে আমি অনুমান করি যে আমি ভুল জায়গায় খুঁজছি বা একটি পদক্ষেপ মিস করছি।


3
mvn ইনস্টল - এই আপনার স্থানীয় সংগ্রহস্থলের মধ্যে আপনার হস্তনির্মিত বস্তু (বয়াম, যুদ্ধের, কান) ইনস্টল করার জন্য ব্যবহৃত হয় (সাধারণত এটা ~ / .m2 / সংগ্রহস্থল direcotry হবেন)
Łukasz Siwiński

উত্তর:


148

pomমূলত submodules এর একটি ধারক, প্রতিটি submodule হিসাবে একই ডিরেক্টরির মধ্যে একটি সাব-দ্বারা প্রতিনিধিত্ব করা হয় pom.xmlসঙ্গে pomপ্যাকেজিং।

কোথাও, প্রকল্প কাঠামোর মধ্যে নেস্টেড আপনি warপ্যাকেজিং সহ শিল্পকর্ম (মডিউল) পাবেন । মাভেন সাধারণত /targetপ্রতিটি মডিউলের উপ-ডিরেক্টরিতে সবকিছু তৈরি করে । তাই পরে mvn installদেখব targetএকটি মডিউল মধ্যে সাব warপ্যাকেজিং।

অবশ্যই:

$ find . -iname "*.war"

সমানভাবে ভাল কাজ করে ;-)।


45

পম প্যাকেজিং কেবল একটি স্পেসিফিকেশন যা সূচিত করে যে প্রাথমিক শিল্পকর্মটি যুদ্ধ বা জার নয়, তবে pom.xML নিজেই।

প্রায়শই এটি "মডিউল" এর সাথে একত্রে ব্যবহৃত হয় যা সাধারণত প্রকল্পের সাব-ডিরেক্টরিতে অন্তর্ভুক্ত থাকে; তবে এটি এমন কিছু দৃশ্যেও ব্যবহৃত হতে পারে যেখানে প্রাথমিক বাইনারি নির্মাণের কথা ছিল না, অন্যান্য সমস্ত গুরুত্বপূর্ণ নিদর্শনগুলি গৌণ শিল্পকলা হিসাবে ঘোষণা করা হয়েছে

একটি "ডকুমেন্টেশন" প্রকল্পের কথা চিন্তা করুন, প্রাথমিক শিল্পকর্মগুলি একটি পিডিএফ হতে পারে তবে এটি ইতিমধ্যে নির্মিত হয়েছে, এবং এটির প্রয়োজন নেই এমন পিডিএফ কীভাবে তৈরি করতে হবে তা মাভেনকে জানাতে কনফিগারেশনের মাধ্যমে এটি একটি গৌণ শিল্পকলা হিসাবে ঘোষণা করার কাজটি পছন্দ হতে পারে সংকলিত।


অন্যান্য উদাহরণ যা আমি পম প্রকল্প ==> বিমূর্ত শ্রেণি এবং এর ভিতরে মডিউল (গুলি) এর হিসাবে ==> কংক্রিট শ্রেণি (গুলি) হিসাবে একই পংক্তিতে ভাবতে পারি।
ভারতজ

22

pomঅন্যান্য প্রকল্পগুলিকে একত্রিত করে এমন প্রকল্পগুলিতে এবং প্যাকেজিংয়ের প্যাকেজিং ব্যবহার করা হয় যাগুলির কেবলমাত্র কার্যকর আউটপুটটি কোনও কোনও প্লাগইন থেকে সংযুক্ত আর্টিফ্যাক্ট। আপনার ক্ষেত্রে, আমি অনুমান করতে পারি যে আপনার শীর্ষ-স্তরের পোমে <modules>...</modules>অন্যান্য ডিরেক্টরিগুলিকে একত্রিত করার জন্য অন্তর্ভুক্ত করা হয়েছে, এবং আসল আউটপুটটি অন্য (সম্ভবত উপ-) ডিরেক্টরিগুলির একটির ফলাফল। এটি, যদি এই উদ্দেশ্যে সংবেদনশীলভাবে কোড করা থাকে তবে এর একটি প্যাকেজিং থাকবে war


1
"যার একমাত্র দরকারী আউটপুটটি কোনও প্লাগইন থেকে সংযুক্ত শিল্পকর্মটি" বলতে কী বোঝায়?
ওমজেগো

9

আপনি যখন এমভিএন করবেন তখন কেবল আপনার প্রশ্নের উত্তর দেওয়ার জন্য: ইনস্টল করুন , ম্যাভেন একটি প্যাকেজড আর্টিক্ট তৈরি করবে ( pom.xML- এ প্যাকেজিং অ্যাট্রিবিউট) এর উপর ভিত্তি করে , আপনি আপনার মেভেন ইনস্টল চালানোর পরে আপনি। প্যাকেজ এক্সটেনশন সহ ফাইলটি সন্ধান করতে পারবেন

  • প্রকল্প ওয়ার্কস্পেসের লক্ষ্য ডিরেক্টরিতে
  • এছাড়াও যেখানে আপনার মেভেন 2 স্থানীয় সংগ্রহস্থলটি আপনার বাক্সে ( .m2 / রেপোসোটরি ) অনুসন্ধান করছে , সেখানে আপনার শিল্পকর্মটি .m2 সংগ্রহস্থলে তালিকাভুক্ত হয়েছে ( গ্রুপআইডি / আর্টিফ্যাক্টআইডি / আর্টিফ্যাক্টআইডি-সংস্করণ.প্যাকেজিং) ) ডিরেক্টরিতে
  • আপনি যদি ডিরেক্টরিটির অধীনে সন্ধান করেন তবে আপনি প্যাকেজড এক্সটেনশন ফাইল এবং পম এক্সটেনশনও পাবেন (পম এক্সটেনশনটি মূলত এই প্যাকেজটি তৈরি করতে ব্যবহৃত pom.xML)
  • যদি আপনার মাভেন প্রকল্পটি মাল্টি-মডিউল হয় তবে প্রতিটি মডিউলে উপরে বর্ণিত দুটি ফাইল শীর্ষ স্তরের প্রকল্প ব্যতীত কেবলমাত্র পিএম থাকবে

8

পিওএম হিসাবে একটি নিদর্শন প্যাকেজিং এর অর্থ এটি একটি খুব সাধারণ জীবনচক্র আছে

package -> install -> deploy

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

আপনি যদি কোনও পম.এক্সএমএল ফাইল বা এমন একটি প্রকল্প স্থাপন করছেন যা অন্যান্য প্যাকেজিংয়ের সাথে খাপ খায় না তবে এটি কার্যকর।

আমরা আমাদের বেশিরভাগ প্রকল্পের জন্য পম প্যাকেজিং ব্যবহার করি এবং যথাযথভাবে অতিরিক্ত পর্যায় এবং লক্ষ্যকে বাঁধাই।

উদাহরণস্বরূপ আমাদের কিছু অ্যাপ্লিকেশন ব্যবহার করে:

prepare-package -> test -> package -> install -> deploy

আপনি যখন অ্যাপ্লিকেশনটি mvn ইনস্টল করবেন এটি এটিকে আপনার স্থানীয়ভাবে .m2 সংগ্রহস্থলে যুক্ত করা উচিত। অন্য কোথাও প্রকাশ করার জন্য আপনাকে সঠিক বিতরণ পরিচালনার তথ্য স্থাপন করতে হবে। ম্যাভেন দ্বারা শিল্পকর্মগুলি স্বয়ংক্রিয়ভাবে সংযুক্ত না করা থাকলে আপনাকে মভেন বিল্ডার হেল্পার প্লাগইনও ব্যবহার করতে হবে।


6

আমি ক্লাসিক উদাহরণটি এখানে দেখার পরামর্শ দিই: http://maven.apache.org/guides/getting-st সূত্র /index.html# হাও_ডো_আই_বিল্ড_মোর_থান_ন_প্রজেক্ট_্যাট_অনসেস

এখানে আমার-ওয়েব অ্যাপ্লিকেশনটি হ'ল ওয়েব প্রকল্প, যা আমার অ্যাপ্লিকেশন প্রকল্পের কোডের উপর নির্ভর করে। সুতরাং একটিতে দুটি প্রকল্প বান্ডিল করতে, আমাদের শীর্ষ স্তরের pom.xML রয়েছে যা উল্লেখ করে যেগুলি প্রকল্পগুলি (মাভেন টার্মিনোলজি অনুযায়ী মডিউলগুলি) অবশেষে বান্ডিল করা হবে। এই জাতীয় শীর্ষ স্তরের pom.xml পোম প্যাকেজিং ব্যবহার করতে পারে।

আমার-ওয়েব অ্যাপে যুদ্ধের প্যাকেজিং থাকতে পারে এবং আমার-অ্যাপের উপর নির্ভরতা থাকতে পারে। আমার অ্যাপ্লিকেশন জার প্যাকেজিং থাকতে পারে।


2

রিয়েল লাইফ ইউজ কেস

একটি জাভা-ভারী সংস্থায় আমাদের একটি অজগর প্রকল্প ছিল যা একটি নেক্সাস আর্টিক্ট রিপোজিটরিতে যেতে হবে। পাইথনের আসলে কোন শিল্পকর্ম নেই, তাই কেবলমাত্র পাইথন ফাইলগুলি বা .zip করতে চেয়েছিলেন and রেপোটিতে ইতিমধ্যে মভেন ইন্টিগ্রেশন ছিল, তাই আমরা পাইথন প্রকল্পটিকে প্যাকেজ হিসাবে প্যাকেজ করতে এবং এটি আপলোড করতে মভেন এসেম্বলি প্লাগইনের<packaging>pom</packaging> সাথে ডিজাইনার ব্যবহার করেছি।.zip

পদক্ষেপগুলি এই এসও পোস্টে বর্ণিত হয়েছে


1

"পম" প্যাকেজিং কেবল ধারক ছাড়া কিছুই নয়, এতে অন্যান্য প্যাকেজ / মডিউল যেমন জার, যুদ্ধ এবং কান রয়েছে।

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

প্রতিটি প্যাকেজ / মডিউলটির জন্য আলাদা অপারেশন করার দরকার নেই।


1

https://maven.apache.org/pom.html

প্যাকেজিং ধরণের প্যারেন্ট এবং সমষ্টি (মাল্টি-মডিউল) প্রকল্পগুলির জন্য পম হওয়া দরকার। এই ধরণের জীবনচক্র স্তরের একটি সেটকে আবদ্ধ লক্ষ্যগুলি সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ, যদি প্যাকেজিং জার হয়, তবে প্যাকেজ পর্বটি জার: জার লক্ষ্যটি কার্যকর করবে। যদি প্যাকেজিং পম হয় তবে সম্পাদিত লক্ষ্যটি সাইট হবে: সংযুক্তি-বর্ণনাকারী


0

POM (প্রজেক্ট অবজেক্ট মডেল) প্রকল্পটি নির্মাণের জন্য অটোমেশন স্ক্রিপ্ট ছাড়া কিছুই নয়, আমরা এক্সএমএলে অটোমেশন স্ক্রিপ্টটি লিখতে পারি, বিল্ডিং স্ক্রিপ্ট ফাইলগুলির নাম বিভিন্ন অটোমেশন সরঞ্জামগুলিতে পৃথকভাবে দেওয়া হয়েছে

যেমন আমরা এএনটিতে বিল্ড.এক্সএমএল, MAVEN এ pom.xML কল করি

MAVEN জার, যুদ্ধ, কান এবং POM প্যাকেজ করতে পারে যা আমাদের সবার জন্য নতুন new

আপনি যদি POM.XML কী তা পরীক্ষা করতে চান

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