যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি Project.dependencies
স্ক্রিপ্ট ব্লকটির সাথে স্ক্রিপ্ট ব্লককে বিভ্রান্ত করছেন Project.buildscript.dependencies
(ঠিক যেমন আমি এই প্রশ্নটিতে পৌঁছানোর পরেছিলাম)।
আমি যা খুজে পেয়েছি তার উত্তর দেওয়ার চেষ্টা করব।
আমি মনে করি আপনার ইতিমধ্যে Project.dependencies
স্ক্রিপ্ট ব্লকের সাথে পরিচিত হওয়া উচিত । এই ব্লকে, আমরা আমাদের উত্স কোড দ্বারা প্রয়োজনীয় যে নির্ভরতাগুলি ঘোষণা করি। প্রকল্পের জন্য আমাদের যে নির্ভরতা প্রয়োজন তা ঘোষণা করার বিভিন্ন উপায় রয়েছে। গ্রেডল টিউটোরিয়াল দেখুন : নির্ভরতা প্রকার । আমি কেবল সেই অংশটিই উল্লেখ করব যা এই সমস্যার সাথে সবচেয়ে প্রাসঙ্গিক:
compile 'org.hibernate:hibernate-core:5.0.5.Final'
একটি মডিউল নির্ভরতা ঘোষণা। সংকলন কনফিগারেশন (যা এখন বাস্তবায়ন কনফিগারেশন দ্বারা অবচয় করা হয়েছে) এটি কেবল একটি কীওয়ার্ড Implementation only dependencies.
নয় এটি কোন ধরণের নির্ভরতা তা বর্ণনা করে এমন কোনও কীওয়ার্ড নয় (এখানে টাইপ করে আমি টিউটোরিয়ালে সংজ্ঞায়িত তিনটি ধরণের অনুসরণ করছি, অর্থাৎ মডিউল, ফাইল এবং প্রকল্প।)
ইন Gradle টিউটোরিয়াল: লজিক বিল্ড সংগঠিত এটা বলেছেন:
যদি আপনার বিল্ড স্ক্রিপ্টটির বাহ্যিক লাইব্রেরিগুলি ব্যবহার করার প্রয়োজন হয় তবে আপনি সেগুলি বিল্ড স্ক্রিপ্টের মধ্যেই স্ক্রিপ্টের ক্লাসপাথে যুক্ত করতে পারেন। আপনি বিল্ডস্ক্রিপ্ট () পদ্ধতিটি ব্যবহার করে এটি বন্ধের মধ্যে দিয়ে যা বিল্ড স্ক্রিপ্ট ক্লাসপাথ ঘোষণা করে।
আপনি যেমন ঘোষণা করেন ঠিক তেমনই এটি জাভা সংকলন শ্রেণিপথ। প্রকল্প নির্ভরতা বাদে নির্ভরতা প্রকারভেদে বর্ণিত যে কোনও নির্ভরতা প্রকারগুলি আপনি ব্যবহার করতে পারেন।
বিল্ড স্ক্রিপ্টের ক্লাসপথ ঘোষণা করার পরে, আপনি ক্লাসপথের অন্য কোনও ক্লাসগুলির মতো আপনার বিল্ড স্ক্রিপ্টের ক্লাসগুলি ব্যবহার করতে পারেন।
আমি আশা করি বিষয়গুলি এখন আপনার কাছে স্পষ্ট হয়ে উঠবে।
সঙ্গে classpath "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
আমরা সেটিং করছি classpath
পদ্ধতি সঙ্গে com.android.tools.build:gradle:${Versions.android_gradle_plugin}
যা একটি মডিউল নির্ভরতা যে বিল্ড স্ক্রিপ্ট নিজেই বদলে আপনার প্রকল্পের মধ্যে উৎস দ্বারা ব্যবহার করা হয়।
অন্যদিকে, compile 'org.hibernate:hibernate-core:5.0.5.Final'
সংকলন কনফিগারেশন সহ আমরা আপনার প্রকল্পের জন্য প্রয়োজনীয় একটি মডিউল নির্ভরতা ঘোষণা করছি ।
tl; dr: the classpath
, compile
এবং implementation
সমস্ত কীওয়ার্ড যা বিভিন্ন পরিস্থিতিতে নির্ভরতার বিরুদ্ধে ব্যবহার করা যেতে পারে। পূর্ববর্তীটি ব্যবহৃত হয় যখন আপনি বিল্ড স্ক্রিপ্টের উপর নির্ভরশীলতার মধ্যে যেতে চান, এবং পরবর্তীটি আপনি যে কনফিগারেশনটি ঘোষণা করতে চাইতে পারেন তার মধ্যে একটি।
classpath
কোনও বৈধ নির্ভরতার সুযোগ নয়।