কোন maven pom.xML থেকে অব্যবহৃত নির্ভরতা অপসারণ করার কোন সহজ উপায় আছে?


277

আমার কাছে অনেকগুলি মডিউল এবং অনেকগুলি pom.xmlফাইল সহ একটি বিশাল মাভেন প্রকল্প রয়েছে । প্রকল্পটি পরিবর্তন হয়েছে এবং আমি সন্দেহ করি যে পোমের মধ্যে কিছু অপ্রয়োজনীয় নির্ভরতা রয়েছে। এমন কোনও আদেশ আছে যা কোনও পোম থেকে অব্যবহৃত নির্ভরতা অপসারণ করবে?


2
: আপনি IntelliJ ব্যবহার করেন, তাহলে এই দেখতে jonnyzzz.com/blog/2013/05/13/... মৃত লিঙ্ক ক্ষেত্রে: Jonnyzzz অধীনস্থ প্লাগইন
Benj

3
@ বেঞ্জ আমি এই জনিজ প্লাগইনটি ব্যবহার করার চেষ্টা করেছি এবং এটি অকেজো ছিল। বেশিরভাগ সময় এটি কোনও অব্যবহৃত নির্ভরতা খুঁজে পাবে না এবং কখনও কখনও এটি যখন বিল্ডড্র্যাডল ফাইল থেকে নয় শ্রেণীর পথ থেকে নির্ভরতাগুলি সরিয়ে ফেলবে। এই প্লাগইনটি আসলে কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য আমি সঠিক ডকটিও খুঁজে পাচ্ছি না।
বৈভা।

@ ভাইভা। আপডেটের জন্য ধন্যবাদ। দেখে মনে হচ্ছে ২০১ things সালের পর থেকে পরিস্থিতি বদলেছে।
বেনজ

উত্তর:


222

ম্যাভেন নির্ভরতা প্লাগইন সাহায্য করবে, বিশেষ করে dependency:analyzeলক্ষ্য:

dependency:analyzeএই প্রকল্পের নির্ভরতা বিশ্লেষণ করে এবং কোনটি নির্ধারণ করে: ব্যবহৃত এবং ঘোষিত হয়; ব্যবহৃত এবং অঘোষিত; অব্যবহৃত এবং ঘোষিত

আরেকটি জিনিস যা কিছু পরিষ্কার করতে সহায়তা করতে পারে তা হ'ল ম্যাভেন প্রকল্পের তথ্য প্রতিবেদন প্লাগইন থেকে নির্ভরতা রূপান্তর রিপোর্ট


5
আমি কীভাবে এটিগ্রহণ করতে পারি?
ড্যানিল শেভলেভ

134
নির্ভরতার সাথে সতর্ক থাকুন: বিশ্লেষণ করুন, রানটাইমের সময় ব্যবহৃত কিছু লাইব্রেরি অব্যবহৃত হিসাবে বিবেচিত হয়।
নেরিস

27
অপ্রয়োজনীয় হিসাবে রানটাইম এবং সরবরাহিত নির্ভরতাগুলি প্রতিবেদন করা প্রতিরোধ করতে, ignoreNonCompileবিকল্পটি সত্যে সেট করা যেতে পারে।
সুদীপ

নির্ভরতা ব্যবহার করার সময় সতর্ক থাকুন: বিশ্লেষণ করুন, এমনকি আমি 'ইজেপি এপিআই 3'ডেপেন্সি ব্যবহার করছিলাম তবে রিপোর্টটি দেখানো হয়েছে যে এটি' অব্যবহৃত এবং ঘোষিত '
আখিল এস কামাথ

বিশ্লেষণের ফলাফলগুলি বোঝার জন্য, এই উত্তরটি দেখুন: "ব্যবহৃত অঘোষিত নির্ভরতা হ'ল প্রয়োজনীয় যা তবে আপনার প্রকল্পে নির্ভরতা হিসাবে স্পষ্টভাবে ঘোষণা করা হয়নি।" - stackoverflow.com/questions/4565740/...
Janac মীনা

49

তুমি ব্যবহার করতে পার dependency:analyze -DignoreNonCompile

এটি ব্যবহৃত অঘোষিত এবং অব্যবহৃত ঘোষিত নির্ভরতাগুলির একটি তালিকা মুদ্রণ করবে ( অব্যবহৃত নির্ভরতা বিশ্লেষণের জন্য runtime/ provided/ test/ systemস্কোপগুলি উপেক্ষা করার সময় )

এটি ব্যবহার করার সময় সতর্কতা অবলম্বন করুন , ব্যবহৃত কয়েকটি গ্রন্থাগারকে runtimeঅব্যবহৃত হিসাবে বিবেচনা করা হবে!

আরও তথ্যের জন্য এই লিঙ্কটি দেখুন


4
[প্লাস] রানটাইম উল্লেখের জন্য 1!
গৌরব

1
আপনি ঠিক বলেছেন কিছু রানটাইম নির্ভরতা অব্যবহৃত হিসাবে প্রকৃতপক্ষে কমছে তবে বাস্তবে এটি প্রয়োজনীয়।
স্মার্ট কোডার

43

অন্যরা যেমন বলেছে, আপনি নির্ভরতা ব্যবহার করতে পারেন : কোন নির্ভরতাগুলি ব্যবহার ও ঘোষণা করা হয়, ব্যবহৃত হয় এবং অঘোষিত হয়, বা অব্যবহৃত এবং ঘোষিত হয় তা সন্ধানের জন্য লক্ষ্য বিশ্লেষণ করুন । আপনি নির্ভরতাও খুঁজে পেতে পারেন : আপনার নির্ভরতা ব্যবস্থাপনা বিভাগে মিল না খুঁজে পেতে বিশ্লেষণ-ডেপু-মিলিগ্রাম উপকারী।

আপনি কেবল আপনার পিওএম থেকে অযাচিত সরাসরি নির্ভরশীলতাগুলি সরিয়ে ফেলতে পারেন, তবে তারা যদি তৃতীয় পক্ষের জারের দ্বারা প্রবর্তিত হয়, আপনি <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>

3
(ইন্টেলিজ) প্রশ্নের জবাব হিসাবে আমি জনিজ্জেস প্লাগইন ব্যবহার করেছি। নিস প্লাগইন, IntelliJ 2016.1.3 ভাল কাজ করে এর
Benj

34

আপনি কি মাভেন নির্ভরতা প্লাগিনটি দেখেছেন ? এটি আপনার জন্য স্টাফ সরিয়ে ফেলবে না তবে আপনাকে বিশ্লেষণ নিজেই করার অনুমতি দেওয়ার সরঞ্জাম রয়েছে। আমি বিশেষভাবে চিন্তা করছি

mvn dependency:tree

1
দুর্দান্ত - ধন্যবাদ (আমি "পরিষ্কার নির্ভরতা" অনুসন্ধান করতে থাকায় আমি যা খুঁজছিলাম তা সন্ধান করতে পারি নি এবং এটি ক্লিন প্লাগইনটি ছুঁড়ে ফেলছিল !! তবে এটি আশাব্যঞ্জক দেখাচ্ছে .. এমভিএন নির্ভরতা: বিশ্লেষণ করুন)

14

আমার একই ধরণের সমস্যা ছিল এবং আমার পক্ষে নির্ভরতা সরিয়ে এমন কোনও স্ক্রিপ্ট লেখার সিদ্ধান্ত নিয়েছিলাম। এটি ব্যবহার করে আমি নির্ভরতার অর্ধেকেরও বেশি পার পেয়েছিলাম বরং সহজেই।

http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html


2
দ্রষ্টব্য, এই স্ক্রিপ্টটি ব্যবহার করে না mvn dependency:analyze। এটি কেবল প্রতিটি নির্ভরতা অপসারণ করার চেষ্টা করে এবং mvn installকাজ করে কিনা তা পরীক্ষা করে।
ডাইটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.