আমি মাভেনে নতুন, আমার মাই ক্লিপসে কনফিগার করা মাভেন সহ আমার একটি জাভা ভিত্তিক ওয়েব প্রকল্প রয়েছে।
এখন যদি আমি কোন জাভা ফাইল মডিফাই তারপর আমি যা করতে হবে না Run as -> Mvn install
বা Mvn package
?
আমি মাভেনে নতুন, আমার মাই ক্লিপসে কনফিগার করা মাভেন সহ আমার একটি জাভা ভিত্তিক ওয়েব প্রকল্প রয়েছে।
এখন যদি আমি কোন জাভা ফাইল মডিফাই তারপর আমি যা করতে হবে না Run as -> Mvn install
বা Mvn package
?
উত্তর:
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html থেকে
package
: সংকলিত কোডটি নিন এবং এটির বিতরণযোগ্য বিন্যাসে প্যাকেজ করুন, যেমন জেআর।
install
: স্থানীয়ভাবে অন্যান্য প্রকল্পের নির্ভরতা হিসাবে ব্যবহারের জন্য প্যাকেজটি স্থানীয় সংগ্রহস্থলে ইনস্টল করুন
সুতরাং আপনার প্রশ্নের উত্তর হ'ল এটি আপনার স্থানীয় রেপোতে আপনি ইনস্টল করতে চান কিনা তার উপর নির্ভর করে। ইনস্টল এছাড়াও প্যাকেজ চালাবে কারণ এটি লক্ষ্য পর্বের স্ট্যাকের চেয়ে বেশি।
deploy
ঘটে। আপনি যদি এটির সাথে প্রতিস্থাপন করেন তবে package
এটি নেক্সাসে স্থাপন করা হবে না।
mvn install
বিকল্পটি যা প্রায়শই ব্যবহৃত হয়।
mvn package
খুব কমই ব্যবহৃত হয়, কেবল যদি আপনি ম্যাভেন বিল্ড প্রক্রিয়াটির সাথে কোনও সমস্যা ডিবাগ করেন।
দেখুন: http://maven.apache.org/guides/intr پيداوار / intr پيداوار-to-the-lifecycle.html
নোট যেটি mvn package
কেবল একটি জার ফাইল তৈরি করবে।
mvn install
তা করতে হবে এবং সঠিক স্থানে বয়াম (এবং শ্রেণী ইত্যাদি) ইনস্টল ফাইল যদি অন্য কোড ঐ বয়াম উপর নির্ভর করে।
আমি সাধারণত একটি করি mvn clean install
; এটি target
ডিরেক্টরি মুছে ফেলে এবং সেই জায়গার সমস্ত জারকে পুনরায় তৈরি করে।
ক্লিনটি অপ্রয়োজনীয় বা সরানো স্টাফগুলিতে সহায়তা করে যা মাঝে মাঝে পথে যেতে পারে।
তারপরে ডিবাগ করুন (কিছু সময়) কেবল নতুন সময় শুরু করুন।
থেকে লাইফ সাইকল রেফারেন্স , ইনস্টল প্রকল্পের ইন্টিগ্রেশন পরীক্ষার চালানো হবে, প্যাকেজ না।
আপনার যদি উত্পন্ন শিল্পকর্মগুলি সত্যই ইনস্টল না করার দরকার হয় তবে কমপক্ষে যাচাই করুন ।
এছাড়াও আপনার লক্ষ্য রাখতে হবে যে যদি আপনার প্রকল্পে একে অপরের উপর নির্ভরশীল বিভিন্ন মডিউল থাকে তবে আপনার "প্যাকেজ" এর পরিবর্তে "ইনস্টল" ব্যবহার করা উচিত, অন্যথায় আপনার বিল্ডটি ব্যর্থ হবে, আপনি যখন ইনস্টল কমান্ড ব্যবহার করবেন তখন মডিউল একটি প্যাকেজ হবে এবং স্থানীয় সংগ্রহস্থলে মোতায়েন করা হয় এবং তারপরে যদি মডিউল বি এর নির্ভরতা হিসাবে মডিউল A এর প্রয়োজন হয় তবে এটি স্থানীয় সংগ্রহস্থল থেকে এটি অ্যাক্সেস করতে পারে।
আপনি যদি রিমোট রিপোজিটরি ব্যবহার করেন না (যেমন কারিগর হিসাবে), তবে পুরানো সরল ব্যবহার করুন:
mvn clean install
খুব পুরানো বিষয় কিন্তু আফাইক, যদি আপনি নিজের দল (গুলি) এর মধ্যে বয়াম ভাগ করে নিতে নিজের সংগ্রহস্থল (উদাহরণস্বরূপ: কারুকার্য সহ) চালনা করেন তবে আপনি ব্যবহার করতে পারেন
mvn clean deploy
পরিবর্তে.
এইভাবে, আপনার অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভারটি নিশ্চিত হতে পারে যে সমস্ত নির্ভরতা সঠিকভাবে আপনার দূরবর্তী সংগ্রহস্থলে ঠেলাঠেলি করে। আপনি যদি কোনওটি মিস করেন তবে এমভিএন এটি আপনার সিআই স্থানীয় এম 2 সংগ্রহস্থলে খুঁজে পাবে না।
প্যাকেজ - সংকলিত কোড নেয় এবং এটির বিতরণযোগ্য বিন্যাসে প্যাকেজ করে, যেমন জেআর বা ওয়ার ফাইল হিসাবে। স্থানীয়ভাবে অন্যান্য প্রকল্পের নির্ভরতা হিসাবে ব্যবহারের জন্য স্থানীয় সংগ্রহস্থলে প্যাকেজটি ইনস্টল করুন
সঠিক উপায়mvn package
যদি আপনি আপনার বিল্ড কোর অংশ জন্য সঠিকভাবে কাজ করেছিল পরে স্থানীয় সংগ্রহস্থলের মধ্যে আপনার প্যাকেজগুলি ইনস্টল করার কোন প্রয়োজন সেখানে উচিত।
এছাড়াও আপনি যদি ট্র্যাভিস ব্যবহার করেন তবে আপনি আপনার নির্ভরতাগুলি "ক্যাশে" করতে পারেন কারণ এটি আপনার স্পর্শ করবে না $HOME.m2/repository
আপনি যদি নিজের প্রকল্পের জন্য প্যাকেজ ব্যবহার করেন তবে ।
ব্যবহারিকতায় যদি আপনি এমনকি একটি করার চেষ্টা করেন তবে mvn site
সাধারণত আপনার mvn install
আগে করা উচিত। উভয়টি সহ কেবলমাত্র অনেকগুলি বাগ রয়েছে site
বা এটির অনেকগুলি দুর্বল রক্ষণাবেক্ষণকৃত প্লাগইন রয়েছে।
এটি জাভা ফাইল পরিবর্তন করার পরে আপনি কী অর্জন করতে চাইছেন তার উপর নির্ভর করে। যতক্ষণ না আপনি খাঁটি প্রক্রিয়াটি পরীক্ষা করতে চান, আপনার কখনই কিছু করার দরকার নেই। Eclipse / MyEclipse যা প্রয়োজন তা তৈরি করে এবং আউটপুটটিকে আপনার প্রকল্পের মধ্যে উপযুক্ত জায়গায় রাখে। আপনি মাভেনের সাথে সুস্পষ্টভাবে কিছু করার প্রয়োজন ছাড়াই এটি চালাতে বা মোতায়েনও করতে পারেন (এটি যদি কোনও ওয়েব প্রকল্প হয়, উদাহরণস্বরূপ)। শেষ পর্যন্ত, আপনার প্রকল্পটি মাভেন সংগ্রহস্থলে ইনস্টল করতে আপনার একটি খাঁটি ইনস্টল করতে হবে। আপনি কার্যকর করতে চান এমন অন্যান্য উত্কৃষ্ট লক্ষ্যগুলিও থাকতে পারে, যা মাইএক্লিপস স্বয়ংক্রিয়ভাবে করবে না।
আমি যেমন বলছি, এটি নির্ভর করে আপনি কী করতে চান depends