মনে করুন, আমি আমার বৃহত প্রকল্পে একটি সম্পূর্ণ বিল্ড করছি যা 7 টি মডিউল এবং 6 তম মডিউলে, বিল্ডটি ব্যর্থ হয়েছে কারণ একটি পরীক্ষা ব্যর্থ হয়েছে। এমন কোনও উপায় আছে যার মাধ্যমে আমি বিল্ডটি ব্যর্থ হওয়ার জায়গা থেকে শুরু করতে পারি?
উত্তর:
আপনি 6 -rf
বা মডিউলটি ব্যবহার করে বিল্ডটি পুনরায় শুরু করতে পারেন বা --resume-from
:
-rf, --resume-from
নির্দিষ্ট প্রকল্প থেকে চুল্লি পুনরায় শুরু করুন
দেখুন উন্নত চুল্লী বিকল্প বিস্তারিত জানার জন্য।
subproject/subsubproject
maven -rf <module name> clean install
mvn -rf :moduleName install
। (কোলনটির প্রয়োজন কেন ঠিক তা নিশ্চিত নয় তবে এটি সম্ভবত অন্তত আমার সেটআপের জন্য))
install
লক্ষ্য ছিল , কারণ পুনরায় শুরু করা বিল্ডটি এরপরে নির্ভরতা সমাধানের জন্য আপনার স্থানীয় মাভেন সংগ্রহশালা থেকে ইতিমধ্যে নির্মিত শিল্পকর্মগুলি পেতে পারে। install
স্ন্যাপশটগুলির সাহায্যে আপনার স্থানীয় সংগ্রহস্থলকে ছড়িয়ে দেওয়ার পরে বিল্ডগুলি চালানো আমার খারাপ অভ্যাস বলে মনে হচ্ছে এবং আপনি যা আশা করছেন তার চেয়ে পুরানো স্ন্যাপশটের উপর নির্ভর করে আপনি শেষ হতে পারেন you দেখে মনে হচ্ছে এমন বিল্ডগুলির জন্য যেখানে আপনি কেবল package
এবং না install
, ব্যবহার -rf
করা কোনও বিকল্প নয়: আপনাকে পুরো বিল্ডটি করতে হবে।
-rf
কমান্ডটি ব্যবহার করে আপনি যে কোনও মডিউল চান তা থেকে বিল্ডটি পুনরায় শুরু করতে পারেন । উদাহরণস্বরূপ, যদি আপনার বিল্ডটি মাইপ্রজেক্ট-প্রক্সিতে ব্যর্থ হয় তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
mvn -rf myproject-proxy clean install
মাভেন সংক্ষিপ্তসারটি দেখুন এবং আপনি নির্বাহিত মডিউলগুলি দেখতে পাবেন এবং যেখানে ম্যাভেন থামানো হয়েছে। তারপরে এটি চেষ্টা করুন:
mvn clean install-Dmaven.test.skip=true -rf :yourModule
মার্টেন মুল্ডার্সের " হোয়াট নিউ ইন মেভেন 4 " (নভেম্বর 2020) অনুসারে , আপনি শীঘ্রই আসন্ন ম্যাভেন 4.0.0 (Q1 2021) এর সাথে সক্ষম হবেন
এই উদাহরণ প্রকল্প কাঠামো বিবেচনা করুন:
--Resume-from এর সাথে --also-make একসাথে ব্যবহার করুন
চুল্লিটির প্রথম উন্নতিটি একটি বাগ ফিক্স।
পূর্বে, যদি আপনার প্রকল্পের বিল্ড গ্রাহক মডিউল ব্যর্থ তোমাদের সঙ্গে বিল্ড পুনরায় শুরু করতে একটি ইঙ্গিত পেতে হবে--resume-from :client
। তবে আপনি যদি তা করেন তবে বিল্ডটি আবার ভেঙে যাবে: এবার মাভেনের সাধারণ মডিউলটি খুঁজে পেল না।
আপনি ভাবতে পারেন যে যুক্ত করা--also-make
(বা-am
) এটিকে সম্বোধন করবে, তবে তা হবে না। এই দীর্ঘস্থায়ী বাগটি আর নেই।আপনি যদি একত্রিত
--resume-from :client
হন--also-make
তবে চুল্লিটি আপনার প্রকল্পের সমস্ত মডিউল আবিষ্কার করবে এবং আপনার অনুরোধ অনুযায়ী বিল্ডটি চালিয়ে যাবে।
ব্যর্থতার শেষ পয়েন্ট থেকে স্বয়ংক্রিয়ভাবে পুনরায় শুরু করুন
তবে সম্ভাবনাগুলি আপনি খেয়াল করবেন না। জিনিসটি
--resume-from :client
হ'ল এটি আপনাকে প্রয়োজনের চেয়ে বেশি চিন্তা করতে বাধ্য করে।ম্যাভেন 4 এর সাহায্যে আপনি আপনার জীবনকে আরও সহজ এবং ব্যবহার করতে পারেন
--resume
বা-r
সংক্ষেপে। এটি সর্বশেষে ব্যর্থ হওয়া মডিউল থেকে স্বয়ংক্রিয়ভাবে বিল্ডটি পুনরায় শুরু করবে ।তবে আরও আছে! হতে পারে আপনি সমান্তরাল বিল্ড ব্যবহার করছেন । মডিউলগুলির একটি ক্রম সাফল্যের সাথে নির্মিত হয়েছিল, অন্যদিকে মডিউলগুলির অন্য সিকোয়েন্সের বিল্ডটি ভেঙে গেছে।
সেই দৃশ্যে, ব্যবহারের-r
ফলে পূর্ববর্তী বিল্ডে সফল হওয়া মডিউলগুলি এড়িয়ে যাবে।এই দুটি বৈশিষ্ট্যের সংমিশ্রণটি আপনার বৃহত, এন্টারপ্রাইজ সফ্টওয়্যার প্রকল্পটি তৈরি করতে আপনার সময়ের প্রয়োজনের উন্নতি করতে পারে!
সিনট্যাক্স: এমভিএন-আরএফ মডিউলনাম মাভেনগোল বা এমভিএন --resume- থেকে মডিউলনাম মাভেনগোল
উদাহরণ: এমভিএন-আরএফ অ্যাডমিন-মডিউল ক্লিন ইনস্টল বা এমভিএন --resume-থেকে অ্যাডমিন-মডিউল ক্লিন ইনস্টল
-rf
জন্য সংক্ষিপ্ত নয় --remove-from
। এটির জন্য সংক্ষিপ্ত--resume-from
মডিউল 6 এর বিল্ডটি এখনও ব্যর্থ হয় কিনা তা দেখতে আপনি আলাদাভাবে চালনা করতে পারেন তবে আমি ভয় করি যে আপনি "বড়" বিল্ডটি চালাতে চাইলে আপনাকে শুরু থেকেই সমস্ত মডিউল তৈরি করতে হবে।
সম্পাদনা করুন: অবশ্যই পরবর্তী বিল্ডগুলি আরও ত্বরান্বিত হবে কারণ 1-5 মডিউলগুলির কোড ইতিমধ্যে সংকলিত রয়েছে, যদি না আপনি নিজের বিল্ডের অংশ হিসাবে পরিষ্কার পরিচালনা করেন।