আমি এই ফোরামে করা কয়েকটি অভিযোগকে মোকাবিলা করতে চাই:
ম্যাভেন সব-কিছু-না। বা কমপক্ষে আমি ডকুমেন্টেশন থেকে বলতে পারে। আপনি সহজেই পিঁপড়ার জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে মাভেন ব্যবহার করতে পারবেন না এবং ধীরে ধীরে আরও উন্নত বৈশিষ্ট্যগুলি গ্রহণ করুন।
এটা সত্য নয়। মাভেনের বড় জয় এটিকে আপনার নির্ভরতাগুলি যুক্তিসঙ্গত উপায়ে পরিচালনা করতে ব্যবহার করছে এবং আপনি যদি মাভেনে এটি করতে চান এবং পিঁপড়ায় সমস্ত কিছু করতে চান, আপনি পারেন। এখানে কীভাবে:
<?xml version="1.0" encoding="UTF-8"?>
<project name="foo" basedir="." xmlns:maven="antlib:org.apache.maven.artifact.ant" >
<maven:dependencies verbose="true" pathId="maven.classpath">
<maven:pom id="maven.pom" file="pom.xml" />
</maven:dependencies>
</project>
আপনার এখন 'maven.classpath' নামে একটি ক্লাসপাথ অবজেক্ট রয়েছে যা পম ফাইলে সংজ্ঞায়িত সমস্ত মাভেন নির্ভরতা ধারণ করে। আপনার যা দরকার তা হ'ল আপনার পিঁপড়ার লিবিব ডিরেক্টরিতে খাঁটি পিঁপড়া টাস্কগুলি জার করা।
ম্যাভেন আপনার বিল্ড প্রক্রিয়াটিকে আপনার নেটওয়ার্ক সংযোগের উপর নির্ভর করে।
ডিফল্ট নির্ভরতা এবং প্লাগইন আনার প্রক্রিয়া একটি নেটওয়ার্ক সংযোগের উপর নির্ভর করে, হ্যাঁ, তবে কেবলমাত্র প্রাথমিক নির্মাণের জন্য (বা আপনি যদি ব্যবহারের উপর নির্ভরশীলতা বা প্লাগইন পরিবর্তন করেন)। এর পরে সমস্ত জার স্থানীয়ভাবে ক্যাশে করা হয়। এবং যদি আপনি নো-নেটওয়ার্ক সংযোগটি জোর করতে চান তবে আপনি ম্যাভেনকে অফলাইন মোড ব্যবহার করতে বলতে পারেন।
এটি শুরু থেকেই আপনার উপর দৃ structure় কাঠামো চাপিয়ে দেয়।
এটি ফাইল ফর্ম্যাট বা 'কনভেনশন বনাম কনফিগারেশন' সমস্যাটি উল্লেখ করছে কিনা তা পরিষ্কার নয়। পরবর্তীকালের জন্য, অনেকগুলি অদৃশ্য ডিফল্ট রয়েছে জাভা উত্স ফাইল এবং সংস্থানগুলির প্রত্যাশিত অবস্থান বা উত্সের সামঞ্জস্যের মতো । তবে এটি অনমনীয়তা নয়, এটি আপনার জন্য বুদ্ধিমান ডিফল্ট রাখার জন্য আপনাকে এগুলি স্পষ্টভাবে সংজ্ঞায়িত করতে হবে না। সমস্ত সেটিংস বেশ সহজেই ওভাররাইড করা যেতে পারে (যদিও কোনও শিক্ষানবিশের জন্য এটি কীভাবে কিছু জিনিস পরিবর্তন করতে হয় তা ডকুমেন্টেশনে খুঁজে পাওয়া কঠিন)।
আপনি যদি ফাইল ফর্ম্যাট সম্পর্কে কথা বলছেন তবে ভাল এটি পরবর্তী অংশের প্রতিক্রিয়াতে আচ্ছাদিত ...
এটি এক্সএমএল-ভিত্তিক তাই এটি এটি পড়ার মতোই এএনটি ছিল।
প্রথমে, আমি দেখতে পাচ্ছি না যে আপনি কীভাবে অভিযোগ করতে পারেন যে কোনও কিছুর কিছু দিক 'পিঁপড়ের চেয়ে ভাল নয়' এটির খারাপ প্রতিবেদনের সমর্থনযোগ্যতা হিসাবে। দ্বিতীয়ত, এটি এখনও এক্সএমএল থাকা অবস্থায়, এক্সএমএলের ফর্ম্যাটটি অনেক বেশি বেশি সংজ্ঞায়িত। আরও, কারণ এটির সংজ্ঞা দেওয়া হয়েছে, এটি কোনও পমের জন্য বুদ্ধিমান পুরু ক্লায়েন্ট সম্পাদক করা অনেক সহজ। আমি পৃষ্ঠাগুলি লম্বা পিঁপড়া তৈরি স্ক্রিপ্ট দেখেছি যা পুরো জায়গা জুড়ে। কোনও পিঁপড়া তৈরির স্ক্রিপ্ট সম্পাদক এটিকে আরও স্পর্শকাতর করে তুলবে না, একে অপরকে সংযুক্ত কাজের আরও একটি দীর্ঘ তালিকা কিছুটা ভিন্ন উপায়ে উপস্থাপন করা হয়েছে।
বলার পরেও যে এখানে কয়েকটি অভিযোগ আছে যা আমি এখানে দেখেছি যা কিছুটা অসম্পূর্ণতা পেয়েছিল বা তার মধ্যে সবচেয়ে বড় ঘটনা ছিল the
- ডকুমেন্টেশন দুর্বল / নিখোঁজ
- পুনরুত্পাদনযোগ্য বিল্ডস
- গ্রহণের একীকরণ খারাপ bad
- বাগ
যার প্রতি আমার প্রতিক্রিয়া দ্বিগুণ। প্রথমত, ম্যাভেন একটি পিঁপড়া বা মেকের তুলনায় অনেক ছোট সরঞ্জাম, সুতরাং আপনাকে আশা করতে হবে যে এই অ্যাপ্লিকেশনগুলির পরিপক্কতার স্তরে যেতে সময় লাগবে। দ্বিতীয়টি হল, ভাল যদি আপনি এটি পছন্দ না করেন তবে এটি ঠিক করুন । এটি একটি ওপেন সোর্স প্রকল্প এবং এটি ব্যবহার করে এবং তারপরে সমাধানের ক্ষেত্রে যে কারও হাত থাকতে পারে এমন অভিযোগ করা আমার কাছে মোটামুটি অ্যাসাইনিন বলে মনে হয়। ডকুমেন্টেশন পছন্দ না? এটি আরও পরিষ্কার, আরও সম্পূর্ণ বা কোনও শিক্ষানবিশকে অ্যাক্সেসযোগ্য করার জন্য এতে অবদান রাখুন।
পুনরুত্পাদনযোগ্য বিল্ডস সমস্যাটি দুটি ইস্যুতে বিভক্ত হয়, সংস্করণ ব্যাপ্তি এবং স্বয়ংক্রিয় মাভেন প্লাগইন আপডেট। প্লাগইন আপসেটসের জন্য, আপনি যদি এক বছর পরে কোনও প্রকল্প পুনর্নির্মাণের বিষয়টি নিশ্চিত না করেন তবে আপনি ঠিক একই জেডিকে এবং একই পিঁপড়ার সংস্করণটি ব্যবহার করছেন, ভাল এটি অন্য নামের সাথে একই সমস্যা। সংস্করণ ব্যাপ্তিগুলির জন্য, আমি এমন প্লাগইনে কাজ করার পরামর্শ দিচ্ছি যা সমস্ত প্রত্যক্ষ এবং ট্রানজিটিভ নির্ভরতার জন্য লক করা সংস্করণগুলির সাথে একটি অস্থায়ী পোম তৈরি করবে এবং এটিকে মেভেন রিলিজ লাইফসাইকেলের অংশ হিসাবে তৈরি করবে। এইভাবে আপনার রিলিজ বিল্ড পমস সবসময় সমস্ত নির্ভরতার সঠিক বিবরণ।