আপনি যখন মাল্টিকোর / মাল্টি-সিপিইউ মেশিনে মাভেন দিয়ে তৈরি করেন তখন প্রায়শই সমান্তরালে বিভিন্ন সাব-প্রকল্পগুলি তৈরি করা সম্ভব হত। মাভেন দিয়ে এটি করার কোনও উপায় আছে কি? এই / যা কিছু জন্য একটি প্লাগইন আছে?
আপনি যখন মাল্টিকোর / মাল্টি-সিপিইউ মেশিনে মাভেন দিয়ে তৈরি করেন তখন প্রায়শই সমান্তরালে বিভিন্ন সাব-প্রকল্পগুলি তৈরি করা সম্ভব হত। মাভেন দিয়ে এটি করার কোনও উপায় আছে কি? এই / যা কিছু জন্য একটি প্লাগইন আছে?
উত্তর:
ম্যাভেন 3 (বিটা 1 হিসাবে) এখন পরীক্ষামূলক বৈশিষ্ট্য হিসাবে সমান্তরাল বিল্ডগুলিকে সমর্থন করে।
উদাহরণ স্বরূপ,
mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core
মাভেন উইকিতে সম্পূর্ণ ডকুমেন্টেশন পাওয়া যাবে।
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
প্রস্তাবিত সমাধানগুলি দুর্দান্ত তবে আমি সমান্তরাল বিল্ডগুলির সময় পরীক্ষার স্থায়িত্ব সম্পর্কিত উত্তরগুলিতে এখানে কিছু যুক্ত করতে চেয়েছিলাম ।
সুতরাং, যখন মাভেন সমান্তরাল বিল্ড ব্যবহৃত হয়:
mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core
পরীক্ষাগুলি সহ কিছু সমস্যা উপস্থিত হতে পারে। পরীক্ষাগুলিতে এমন কোনও আচরণ নোট করুন যা সিরিয়াল এবং সমান্তরাল পরীক্ষার প্রয়োগের মধ্যে পৃথক। এটি ঘটে যাওয়ার বেশিরভাগ সময় অপ্রজনিত পরীক্ষার বিচ্ছিন্নতা সংস্থান-ভিত্তিক করে ।
উদাহরণস্বরূপ, টেস্ট 1 কী 12345 কী দিয়ে ডিবি এন্ট্রি ম্যানিপুলেট করে, যা হার্ডকোডযুক্ত এবং টেস্ট 2 একই এন্ট্রি ব্যবহার করে! এটা ভাল হতে পারে না ...
এটি এমন একটি পরিস্থিতি যা প্রথমে বিবেচনা করা উচিত, তবে কিছু সময় এটি ভুলে যায় এবং সমান্তরাল মাভেন বিল্ডে স্যুইচ হয়ে যাওয়ার পরে এটি বিভিন্ন সমস্যার কারণ হতে পারে।
যদি এমনটি ঘটে এবং আপনি এখনও কিছুটা ক্ষেত্রে সমান্তরাল সম্পাদনটি ব্যবহার করতে চান তবে আপনি (অবশ্যই পরীক্ষাটি ঠিক করার চেষ্টা করার পাশাপাশি এগুলি সঠিকভাবে বিচ্ছিন্ন করে তোলার পাশাপাশি ) ম্যাভেন টেস্ট রান অক্ষম করতে অক্ষম করতে পারেন -ডস্কিপ টেস্ট যুক্তি:
mvn clean install -T 4 -DskipTests
সিআই বিল্ড অ্যাপ্লিকেশনগুলির কিছু (যেমন হডসন) একই সাথে একাধিক মেন প্রকল্পগুলি (এমনকি একাধিক মেশিনেও) তৈরি করতে পারে।
ম্যাভেন 'স্ট্যান্ড স্টোন' এর জন্য এই সমর্থনটিও দুর্দান্ত হবে, মাভেন ইস্যু ট্র্যাকারটির মাধ্যমে আমাকে একটি তাত্ক্ষণিক নজর দিয়েছে: http://jira.codehaus.org/browse/MNG-3004
আপনি যদি নিজের বিল্ড সার্ভারটি বাছাই করতে এই প্রশ্নটিতে এসে পৌঁছান এবং আপনি যে জাদুর পতাকাটি সন্ধান করছেন তা ম্যাভেনের সাথে কাজ করে এমন কোনও ব্যবহার করছেন না এটি হ'ল:
-Dmaven.repo.local=someNoneGlobalDir
আপনার প্রতিটি বিল্ডের জন্য এটি করুন এবং আপনি একটি সারিতে maven ব্যবহার করে এমন সমস্ত কিছু রাখার পরিবর্তে এগুলি একই সাথে চালাতে পারবেন!