আমি কি প্রকল্পের ফাইলসকে এক্লিপসের .প্রজেক্ট, .ক্লাসপাথ,। সেটিংসগুলি ভার্সন নিয়ন্ত্রণের অধীনে রাখতে পারি (যেমন সাবভারশন, গিটহাব, সিভিএস, মার্কিউরিয়াল ইত্যাদি)?
উত্তর:
আপনি যে কোনও পোর্টেবল সেটিং ফাইলগুলি সংস্করণে নিয়ন্ত্রণে রাখতে চান ,
অর্থ: যে
কোনও ফাইল যার কোনও নিখুঁত পথ নেই।
এটি অন্তর্ভুক্ত:
আমার জন্য থাম্বের বিধি:
আপনাকে অবশ্যই একটি প্রকল্পটিকে একটি ওয়ার্কস্পেসে লোড করতে সক্ষম করতে হবে এবং এটি যথাযথভাবে আপনার আইডিইতে সেট আপ করতে এবং কিছুক্ষণের মধ্যে যেতে হবে আপনার যা কিছু আছে তা এতে থাকতে হবে।
কোনও অতিরিক্ত ডকুমেন্টেশন, উইকি পৃষ্ঠাগুলি পড়তে হবে বা কী না।
এটি লোড করুন, সেট আপ করুন, যান।
.প্রজেক্ট এবং .classpath ফাইল হ্যাঁ। আমরা তবে সংস্করণ নিয়ন্ত্রণে আমাদের আইডিই সেটিংস রাখি না। কিছু প্লাগইন রয়েছে যা অবিচ্ছিন্ন সেটিংস চালিয়ে যাওয়ার পক্ষে ভাল কাজ করে না এবং আমরা দেখতে পেয়েছি যে কিছু সেটিংস একটি ডেভ মেশিন থেকে পরের দিকে খুব বেশি বহনযোগ্য ছিল না। সুতরাং, আমাদের পরিবর্তে একটি উইকি পৃষ্ঠা রয়েছে যা বিকাশকারীর আইডিই সেটআপ করার জন্য প্রয়োজনীয় পদক্ষেপগুলি হাইলাইট করে।
এগুলি আমি উত্পন্ন ফাইল হিসাবে বিবেচনা করি এবং এগুলি আমি কখনই সংস্করণ নিয়ন্ত্রণে রাখি না। এগুলি মেশিন থেকে মেশিনে এবং বিকাশকারী বিকাশকারী থেকে পৃথক হতে পারে, উদাহরণস্বরূপ যখন লোকেরা পৃথক পৃথকভাবে প্লাগইন ইনস্টল থাকে।
পরিবর্তে, আমি একটি বিল্ড টুল (ম্যাভেন) ব্যবহার করি যা আপনি নতুন চেকআউট করার সময় এই ফাইলগুলির প্রাথমিক সংস্করণ তৈরি করতে পারে।
আমি এখানে দুটি বিকল্পের মধ্যে ছিঁড়ে গিয়েছি।
একদিকে, আমি মনে করি যে প্রত্যেকটি উত্স শৈল্পিক সংস্করণ নিয়ন্ত্রণে সংরক্ষণ করা হয় এবং বিল্ড স্ক্রিপ্ট (এএনটি বা ম্যাভেন বলুন) এর দ্বারা মান মেনে চলার বিষয়টি নিশ্চিত করে যতক্ষণ না সমস্ত উত্স শৈল্পিক সংস্করণ নিয়ন্ত্রণে সর্বাধিক উত্পাদনশীল সেগুলির সেটটি ব্যবহার করার জন্য প্রত্যেককে স্বাধীন হতে হবে think কোনটি জেডিকে ব্যবহার করবে তা নির্দিষ্ট করে, কোন তৃতীয় পক্ষের গ্রন্থাগারগুলির উপর নির্ভর করবে কোন স্ট্রোল চেক (উদাহরণস্বরূপ চেকস্টাইল) এবং চলমান ইউনিট পরীক্ষা ইত্যাদি versions
অন্যদিকে, আমি মনে করি যে অনেক লোক একই সরঞ্জামগুলি ব্যবহার করে (যেমন- Eclipse) এবং প্রায়শই বিল্ড টাইমের পরিবর্তে ডিজাইনের সময় কিছু জিনিস মানসম্মত করা আরও ভাল example উদাহরণস্বরূপ, চেকস্টাইল ইক্লিপ প্লাগইন হিসাবে অনেক বেশি কার্যকর একটি এএনটি বা ম্যাভেন টাস্ক - যে উন্নয়নের সরঞ্জামগুলির সেট এবং প্লাগইনগুলির একটি সাধারণ সেটকে মানিক করা ভাল is
আমি এমন একটি প্রকল্পে কাজ করেছি যেখানে প্রত্যেকে একই জেডিকে, মাভেনের একই সংস্করণ, একিপ্লিসের একই সংস্করণ, একই গ্রহপঞ্জি প্লাগইনগুলির একই সেট এবং একই কনফিগারেশন ফাইলগুলি (যেমন চেকস্টাইল প্রোফাইল, কোড ফর্ম্যাটার নিয়ম ইত্যাদি) ব্যবহার করেছিল। এগুলি সমস্ত উত্স নিয়ন্ত্রণে রাখা হয়েছিল - .প্রজেক্ট, .ক্লাসপথ এবং। সেটিংস ফোল্ডারের সমস্ত কিছু। প্রকল্পের প্রাথমিক পর্যায়ে যখন লোকেরা ক্রমাগত নির্ভরতা বা বিল্ডিং প্রক্রিয়াটি টুইট করে চলেছিল তখন এটি জীবনকে সহজ করে তুলেছিল। প্রকল্পে নতুন শুরু করার সময় এটি প্রচুর পরিমাণে সহায়তা করেছিল।
ভারসাম্য বজায় রেখে, আমি মনে করি যে যদি ধর্মীয় যুদ্ধের খুব বেশি সম্ভাবনা না থাকে তবে আপনার বিকাশকারী সরঞ্জাম এবং প্লাগইনগুলির বেসিক সেটটি মানক করা উচিত এবং আপনার বিল্ড স্ক্রিপ্টগুলিতে সংস্করণ অনুসরনের বিষয়টি নিশ্চিত করা উচিত (উদাহরণস্বরূপ জাভা সংস্করণ উল্লেখ করে)) উত্স নিয়ন্ত্রণে জেডিকে এবং একটিলপিস ইনস্টলেশনটি সংরক্ষণ করার অনেক সুবিধা রয়েছে বলে মনে করবেন না। আপনার প্রকল্প ফাইলগুলি, কনফিগারেশন এবং প্লাগইন পছন্দগুলি (বিশেষত কোড ফর্ম্যাটর এবং শৈলীর নিয়মাবলিসহ) - যা উদ্ভূত শিল্পকর্ম নয় সেগুলি সবই উত্স নিয়ন্ত্রণে যেতে হবে।
পিএস যদি আপনি মাভেন ব্যবহার করেন তবে। প্রজেক্ট এবং। ক্লাসপাথ ফাইলগুলি নিদর্শনগুলি প্রাপ্ত বলে বলার পক্ষে একটি যুক্তি রয়েছে। এটি কেবল সত্য যদি আপনি প্রতিটি সময় কোনও বিল্ড তৈরি করার সময় এগুলি উত্পন্ন করেন এবং পিওএম থেকে উত্পন্ন করার পরে যদি আপনাকে কখনও তাদের হাতে ঝাঁকুনি দিতে হয় না (বা অজানাভাবে কিছু পছন্দ পরিবর্তন করে তাদের পরিবর্তন করা হয়)
না, আমি একজন ভারী মাভেন ব্যবহারকারী এবং গ্রহণের জন্য Q ব্যবহার করুন প্লাগইনের করি যা প্রজেক্ট এবং .classpath আপডেট করে keeps প্লাগইনগুলির জন্য সেটিংসের মতো অন্যান্য জিনিসের জন্য আমি সাধারণত এটি সম্পর্কে একটি README বা উইকি-পৃষ্ঠা মেন্টেন করি।
এছাড়াও আমি এর সাথে কাজ করেছি তারা অন্যান্য আইডিই পছন্দ করে কেবল তাদের আইডিই (এবং নিজেরাই) খুশি রাখতে প্রয়োজনীয় ফাইলগুলি তৈরি করতে ম্যাভেন-প্লাগইনগুলি ব্যবহার করে।
আমি মনে করি, এটি সমস্ত মতামত - তবে বছরের পর বছর সেরা অনুশীলনগুলি ইঙ্গিত দেয় যে কোনও প্রদত্ত আইডিই সম্পর্কিত নির্দিষ্ট ফাইলগুলি উত্স নিয়ন্ত্রণে সংরক্ষণ করা উচিত নয়, যদি না আপনার পুরো সংস্থাটি একটি আইডিইতে মানক হয় এবং আপনার কখনও স্যুইচিংয়ের কোনও অভিপ্রায় না থাকে।
যেভাবেই হোক, আপনি অবশ্যই ব্যবহারকারীর সেটিংস সঞ্চিত রাখতে চান না - এবং .প্রজেক্টে এমন ডেটিং থাকতে পারে যা সত্যিই বিকাশকারী নির্দিষ্ট।
আমি মানভিন্ড বিল্ড সিস্টেম হিসাবে মাভেন বা পিঁপড়ার মতো কিছু ব্যবহার করার পরামর্শ দিচ্ছি। যে কোনও বিকাশকারী কয়েক সেকেন্ডের মধ্যে তাদের আইডিইতে একটি ক্লাসপথ কনফিগার করতে পারে।
যদিও আমি "উত্পন্ন ফাইলগুলিকে সংস্করণ দিই না" পদ্ধতির বিষয়ে সাধারণত একমত, আমাদের এতে সমস্যা আছে এবং আমাদের ফিরে যেতে হবে।
দ্রষ্টব্য: আমি ভনসির উত্তরের প্রতি আগ্রহী , বিশেষত "কয়েক মিনিটের মধ্যেই ग्रहण পান" পয়েন্ট সম্পর্কে। তবে এটি আমাদের পক্ষে সিদ্ধান্তমূলক নয়।
আমাদের প্রসঙ্গে এম 2 স্লিপস প্লাগ-ইন ব্যবহার করে Eclipse + Maven। আমাদের যথাসম্ভব সাধারণ ডিরেক্টরি সহ একটি বিকাশের পরিবেশ রয়েছে। তবে এটি কখনও কখনও ঘটে থাকে যে কেউ একটি প্লাগ-ইন চেষ্টা করবেন, বা কনফিগারেশনে সামান্য জিনিস পরিবর্তন করবেন, বা অন্য একটি শাখার জন্য দ্বিতীয় কর্মক্ষেত্র আমদানি করবেন ...
আমাদের সমস্যা হ'ল .প্রজেক্টের প্রজন্মটি Eclipse এ কোনও প্রকল্প আমদানি করার সময় করা হয়, তবে পরে সমস্ত ক্ষেত্রে আপডেট হয় না । এটি দুঃখজনক, এবং সম্ভবত এম 2 স্লিপস প্লাগ-ইন উন্নত হবে বলে স্থায়ী নয় তবে এটি এখনই সত্য। সুতরাং আমরা বিভিন্ন কনফিগারেশন থাকার শেষ। আমাদের আজ যা ছিল তা হ'ল: কিছু মেশিনে অনেক প্রকল্পে বেশ কয়েকটি স্বভাব যুক্ত করা হয়েছিল, যা পরে অনেক আলাদা আচরণ করেছিল :-(
আমরা দেখতে পাই একমাত্র সমাধান হ'ল। প্রকল্প ফাইলটি সংস্করণ করা (ঝুঁকি এড়ানোর জন্য, আমরা .classpath এবং .setting এর জন্যও একই কাজ করব)। এইভাবে, যখন কোনও বিকাশকারী তার পম পরিবর্তন করে, স্থানীয় ফাইলগুলি এম 2 স্লিপস ব্যবহার করে আপডেট হয়, তারা সমস্ত একসাথে প্রতিশ্রুতিবদ্ধ হয় এবং অন্যান্য বিকাশকারীরা সমস্ত পরিবর্তন দেখতে পাবেন।
দ্রষ্টব্য: আমাদের ক্ষেত্রে আমরা আপেক্ষিক ফাইলের নাম ব্যবহার করি, সুতরাং সেই ফাইলগুলি ভাগ করতে আমাদের কোনও সমস্যা নেই।
সুতরাং, আপনার প্রশ্নের উত্তর দিতে, আমি হ্যাঁ বলছি, এই ফাইলগুলি প্রতিশ্রুতিবদ্ধ করুন।
আমিও পছন্দ করি:
দেখে মনে হচ্ছে যে এই প্রকল্পের ফাইলগুলি সময়ের সাথে সাথে আপনি কোনও প্রকল্পে কাজ করতে পারেন তাই হ্যাঁ, আমি সেগুলি সংস্করণ নিয়ন্ত্রণে রাখি।
আমরা ইন্টেলিজ আইডিইএ ব্যবহার করি এবং প্রকল্পের।
এখানে কিছুটা বড় বিষয় ভাগ করে নেওয়া এবং পুনরায় ব্যবহারআইএমএইচও সংস্করণ অপেক্ষা । তবে আপনি যদি এই কনফিগারেশনগুলি ভাগ করতে যাচ্ছেন তবে অন্য কিছুর ঠিক পাশেই, সংগ্রহস্থলের চেয়ে এগুলি রাখার জন্য আরও ভাল জায়গা।
ভাগ করা ও সংস্করণযুক্ত প্রকল্প ফাইলগুলির কিছু সুবিধা:
নোট করুন যে আইডিইএতে এই ফাইলগুলির মধ্যে কনফিগারেশন রয়েছে যেমন: "উত্স" এবং "পরীক্ষার উত্স" ডায়ারগুলি কী; বাহ্যিক নির্ভরতা সম্পর্কে সমস্ত কিছুই (যেখানে গ্রন্থাগারের জারগুলি রয়েছে, পাশাপাশি সম্পর্কিত উত্স বা জাভাদোকগুলি); বিল্ড অপশন, ইত্যাদি এই কাপড় যে হয় না বিকাশকারীকে দেওয়া ডেভেলপার থেকে পৃথক হতে (আমি একমত এই বেশ জোরালোভাবে)। আইডিইএ আরও ব্যক্তিগত আইডিই সেটিংস অন্য কোথাও সঞ্চয় করে, পাশাপাশি যে কোনও প্লাগইন কনফিগারেশন। (আমি এক্লিপ্সকে সেভাবে ভাল করে জানি না; এটি বেশ আলাদা বা নাও হতে পারে))
আমি এই উত্তরের সাথে একমত যা এই বলে:
আপনার অবশ্যই কোনও প্রকল্পকে একটি ওয়ার্কস্পেসে লোড করতে সক্ষম হতে হবে এবং এটি যথাযথভাবে আপনার আইডিইতে সেট আপ করতে এবং কিছুক্ষণের মধ্যে যেতে হবে আপনার যা কিছু আছে তা এতে থাকতে হবে। [...] এটি লোড করুন, সেট আপ করুন, যান।
সংস্করণযুক্ত প্রকল্প ফাইলগুলির জন্য আমাদের এটির মতো রয়েছে।