আমার কাছে অনেকগুলি মডিউল এবং অনেকগুলি pom.xmlফাইল সহ একটি বিশাল মাভেন প্রকল্প রয়েছে । প্রকল্পটি পরিবর্তন হয়েছে এবং আমি সন্দেহ করি যে পোমের মধ্যে কিছু অপ্রয়োজনীয় নির্ভরতা রয়েছে। এমন কোনও আদেশ আছে যা কোনও পোম থেকে অব্যবহৃত নির্ভরতা অপসারণ করবে?
আমার কাছে অনেকগুলি মডিউল এবং অনেকগুলি pom.xmlফাইল সহ একটি বিশাল মাভেন প্রকল্প রয়েছে । প্রকল্পটি পরিবর্তন হয়েছে এবং আমি সন্দেহ করি যে পোমের মধ্যে কিছু অপ্রয়োজনীয় নির্ভরতা রয়েছে। এমন কোনও আদেশ আছে যা কোনও পোম থেকে অব্যবহৃত নির্ভরতা অপসারণ করবে?
উত্তর:
ম্যাভেন নির্ভরতা প্লাগইন সাহায্য করবে, বিশেষ করে dependency:analyzeলক্ষ্য:
dependency:analyzeএই প্রকল্পের নির্ভরতা বিশ্লেষণ করে এবং কোনটি নির্ধারণ করে: ব্যবহৃত এবং ঘোষিত হয়; ব্যবহৃত এবং অঘোষিত; অব্যবহৃত এবং ঘোষিত
আরেকটি জিনিস যা কিছু পরিষ্কার করতে সহায়তা করতে পারে তা হ'ল ম্যাভেন প্রকল্পের তথ্য প্রতিবেদন প্লাগইন থেকে নির্ভরতা রূপান্তর রিপোর্ট ।
ignoreNonCompileবিকল্পটি সত্যে সেট করা যেতে পারে।
তুমি ব্যবহার করতে পার dependency:analyze -DignoreNonCompile
এটি ব্যবহৃত অঘোষিত এবং অব্যবহৃত ঘোষিত নির্ভরতাগুলির একটি তালিকা মুদ্রণ করবে ( অব্যবহৃত নির্ভরতা বিশ্লেষণের জন্য runtime/ provided/ test/ systemস্কোপগুলি উপেক্ষা করার সময় )
এটি ব্যবহার করার সময় সতর্কতা অবলম্বন করুন , ব্যবহৃত কয়েকটি গ্রন্থাগারকে runtimeঅব্যবহৃত হিসাবে বিবেচনা করা হবে!
অন্যরা যেমন বলেছে, আপনি নির্ভরতা ব্যবহার করতে পারেন : কোন নির্ভরতাগুলি ব্যবহার ও ঘোষণা করা হয়, ব্যবহৃত হয় এবং অঘোষিত হয়, বা অব্যবহৃত এবং ঘোষিত হয় তা সন্ধানের জন্য লক্ষ্য বিশ্লেষণ করুন । আপনি নির্ভরতাও খুঁজে পেতে পারেন : আপনার নির্ভরতা ব্যবস্থাপনা বিভাগে মিল না খুঁজে পেতে বিশ্লেষণ-ডেপু-মিলিগ্রাম উপকারী।
আপনি কেবল আপনার পিওএম থেকে অযাচিত সরাসরি নির্ভরশীলতাগুলি সরিয়ে ফেলতে পারেন, তবে তারা যদি তৃতীয় পক্ষের জারের দ্বারা প্রবর্তিত হয়, আপনি <exclusions>তৃতীয় পক্ষের জারগুলি বাদ দেওয়ার জন্য নির্ভরতাতে ট্যাগগুলি ব্যবহার করতে পারেন ( বিশদ এবং কিছু আলোচনার জন্য নির্ভরতা ব্যতিক্রম শিরোনাম বিভাগটি দেখুন ) । স্প্রিং নির্ভরতা থেকে কমন্স-লগিং বাদ দিয়ে এখানে একটি উদাহরণ দেওয়া হয়েছে:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
আপনি কি মাভেন নির্ভরতা প্লাগিনটি দেখেছেন ? এটি আপনার জন্য স্টাফ সরিয়ে ফেলবে না তবে আপনাকে বিশ্লেষণ নিজেই করার অনুমতি দেওয়ার সরঞ্জাম রয়েছে। আমি বিশেষভাবে চিন্তা করছি
mvn dependency:tree
আমার একই ধরণের সমস্যা ছিল এবং আমার পক্ষে নির্ভরতা সরিয়ে এমন কোনও স্ক্রিপ্ট লেখার সিদ্ধান্ত নিয়েছিলাম। এটি ব্যবহার করে আমি নির্ভরতার অর্ধেকেরও বেশি পার পেয়েছিলাম বরং সহজেই।
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze। এটি কেবল প্রতিটি নির্ভরতা অপসারণ করার চেষ্টা করে এবং mvn installকাজ করে কিনা তা পরীক্ষা করে।