সংগ্রহস্থল থেকে নির্ভরতা পুনরায় ডাউনলোড করতে গ্রেডকে কীভাবে বলতে পারি?
সংগ্রহস্থল থেকে নির্ভরতা পুনরায় ডাউনলোড করতে গ্রেডকে কীভাবে বলতে পারি?
উত্তর:
সাধারণত, আপনি আপনার ক্যাশে নির্ভরতা কমান্ড লাইন বিকল্প - রিফ্রেশ-নির্ভরতা দিয়ে রিফ্রেশ করতে পারেন । আপনি এর অধীনে ক্যাশেড ফাইলগুলিও মুছতে পারেন ~/.gradle/caches
। পরবর্তী বিল্ড সহ গ্রেডল তাদের আবার ডাউনলোড করার চেষ্টা করবে।
আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে কী? আপনি গতিশীল নির্ভরতা সংস্করণ বা SNAPSHOT সংস্করণ ব্যবহার করেন?
ইউনিক্স সিস্টেমে আপনি গ্র্যাডল ব্যবহার করে বিদ্যমান সমস্ত শিল্পকর্ম (শৈলীসমূহ এবং মেটাডেটা) মুছতে পারেন:
rm -rf $HOME/.gradle/caches/
find $HOME/.gradle/caches/ -name "*LIBRARY_NAME*" -exec rm -r {} \;
আপনি যদি গ্র্যাডলের সাম্প্রতিক সংস্করণটি ব্যবহার করছেন তবে আপনি --refresh-dependferences বিকল্পটি ব্যবহার করতে পারেন।
./gradlew build --refresh-dependencies
আপনি গ্রেডল ম্যানুয়ালটি উল্লেখ করতে পারেন ।
--Refresh- নির্ভরতা বিকল্পটি গ্রেডলকে বলেছে যে সমাধান করা মডিউল এবং শৈলীগুলির জন্য সমস্ত ক্যাশেড এন্ট্রি উপেক্ষা করতে হবে। গতিশীল সংস্করণগুলি পুনরায় গণনা করা, মডিউলগুলি রিফ্রেশ করা এবং নিদর্শনগুলি ডাউনলোড সহ সমস্ত কনফিগার করা সংগ্রহস্থলের বিরুদ্ধে একটি নতুন সমাধান করা হবে।
আপনি গ্রেডলকে নির্ভরতাটিকে 'পরিবর্তন' হিসাবে চিহ্নিত করে বিল্ড স্ক্রিপ্টে কিছু নির্ভরতা পুনরায় ডাউনলোড করতে বলতে পারেন। গ্রেডেল তারপরে প্রতি 24 ঘন্টা আপডেটের জন্য চেক করবে, তবে এটি রেজোলিউশনস্ট্রেজি ডিএসএল ব্যবহার করে কনফিগার করা যায়। এসএনএপশট বা রাতের বিল্ডগুলির জন্য এটি ব্যবহার করা আমার কাছে দরকারী বলে মনে হচ্ছে।
configurations.all {
// Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
সম্প্রসারিত:
dependencies {
implementation group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}
ঘনীভূত:
implementation('group:projectA:1.1-SNAPSHOT') { changing = true }
আমি এই ফোরামের থ্রেডে এই সমাধানটি পেয়েছি ।
cacheChangingModulesFor
এটি কী, changing: true
এটি alচ্ছিক কারণ এটি দ্বারা নিহিত -SNAPSHOT
, এখানে শর্টহ্যান্ড ব্যবহার করা সম্ভব: compile 'group:projectA:1.1-SNAPSHOT'
উপরোক্ত জড়িততার কারণে। তোলা যায় এক কনফিগ করার resolutionStrategy সীমিত করতে পারে: configurations.compile.resolutionS...
।
compile 'com.burrowsapps:ads:1.0:true'
?
ম্যাকের জন্য
./gradlew build --refresh-dependencies
উইন্ডোজ জন্য
gradlew build --refresh-dependencies
চেষ্টাও করতে পারেন gradlew assembleDevelopmentDebug --refresh-dependencies
gradle wrapper
টাস্ক ব্যবহার করে একটি তৈরি করতে পারেন ; আপনি এমনকি অন্য গ্র্যাডেল র্যাপার ব্যবহার করে একটি মোড়ক তৈরি করতে পারেন:gradlew wrapper
উইন্ডোজের জন্য ... নির্দিষ্ট নির্ভরতা গ্রেড পুনরায় ডাউনলোড করার জন্য :
নীচের ডিরেক্টরি থেকে আপনি পুনরায় ডাউনলোড করতে চান এমন নির্ভরতাগুলি মুছুন:
C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1
পথে সমস্ত মেটাডেটা ডিরেক্টরি মুছুন :
C:\Users\%USERNAME%\.gradle\caches\modules-2\metadata-*
প্রকল্পের রুট ডিরেক্টরিতে চালান gradle build
(বা gradlew build
গ্রেডেল র্যাপার ব্যবহার করে)
দ্রষ্টব্য: উপরের ফাইল পাথের সংখ্যাগুলি আপনার জন্য পৃথক হতে পারে।
ক্যাশেড জারগুলির সাহায্যে ফোল্ডারটি মুছে ফেলা যায়।
আমার ক্ষেত্রে, ম্যাকের উপর লাইব্রেরিটি পথে ক্যাশে ছিল:
/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove
আমি ক্যাশেড লাইব্রেরি ফোল্ডারটি সরিয়েছি (উপরের উদাহরণে "ক্যাশে-লাইব্রেরি-থেকে-অপসারণ"), আমার প্রকল্পের বিল্ড ফোল্ডারটি মুছে ফেলে আবার সংকলন করেছি iled তাজা লাইব্রেরি তখন ডাউনলোড করা হয়েছিল।
আপনার পুরো গ্রেড ক্যাশে মুছে ফেলার পরিবর্তে, এখানে কিছু উত্তর প্রস্তাব দিচ্ছে, আপনি নির্দিষ্ট গ্রুপ বা আর্টিফ্যাক্ট আইডির জন্য ক্যাশে মুছতে পারেন। আমি আমার সাথে নিম্নলিখিত ফাংশনটি যুক্ত করেছি .bash_profile
:
deleteGradleCache() {
local id=$1
if [ -z "$id" ]; then
echo "Please provide an group or artifact id to delete"
return 1
fi
find ~/.gradle/caches/ -type d -name "$id" -prune -exec rm -rf "{}" \; -print
}
ব্যবহার:
$ deleteGradleCache com.android.support
তারপরে, পরবর্তী বিল্ডে বা আপনি পুনরায় সিঙ্ক করেন, গ্রেড নির্ভরতা পুনরায় ডাউনলোড করবে।
এটি করার 2 টি উপায় রয়েছে:
--Refresh- নির্ভরতা বিকল্প ব্যবহার করে :
./gradlew build --refresh-dependencies
সংক্ষিপ্ত বিবরণ - রিফ্রেশ-নির্ভরতা বিকল্পটি গ্রেডলকে বলেছে যে সমাধান করা মডিউল এবং শিল্পকলাগুলির জন্য সমস্ত ক্যাশেড এন্ট্রি উপেক্ষা করতে হবে।
দীর্ঘ ব্যাখ্যা
মুছুন ব্যবহার করুন: আপনি যখন ক্যাচগুলি মুছবেন
rm -rf $HOME/.gradle/caches/
আপনি কেবল সমস্ত ক্যাশেড জারস এবং শ ১ অঙ্কগুলি পরিষ্কার করেছেন এবং গ্রেডল এমন পরিস্থিতিতে রয়েছে যেখানে আপনার মেশিনে কোনও শৈলী নেই এবং সমস্ত কিছুই ডাউনলোড করতে হবে। হ্যাঁ এটি প্রথমবারের জন্য 100% কাজ করবে, তবে যখন অন্য একটি এসএনএপশট প্রকাশিত হবে এবং এটি আপনার নির্ভরতা গাছের অংশ তখন আপনাকে পুনরায় রিফ্রেশ করার বা ক্যাশে শুদ্ধ করার পছন্দের সামনে আবার মুখোমুখি হবে।
এটি আমার পক্ষে কাজ করেছে। নিশ্চিত করুন যে ফাইল> সেটিংস> গ্রেডল> অফলাইন কর্মে গ্রেডল আনচেকিং বোতামের মাধ্যমে অফলাইনে সেট করা নেই।
এটিকে আপনার বিল্ড.ড্রেডেলের শীর্ষ স্তরে যুক্ত করুন, উপরের নির্ভরতা থাকা ভাল
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
আমি নিশ্চিত করেছি যে আমার নির্ভরতাগুলি এভাবে লেখা আছে:
implementation('com.github.juanmendez:ThatDependency:ThatBranch-SNAPSHOT') {
changing = true
}
এরপরে, আমি অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল প্যানেলটি খুলি এবং নীল বৃত্তের তীর বোতামটি ক্লিক করি। আমি সর্বদা আমার আপডেটগুলি একটি নতুন তাজা অনুলিপি পেতে দেখতে পাই।
উপরের কোনও সমাধানই আমার পক্ষে কাজ করেনি।
আপনি যদি ইন্টেলিজ ব্যবহার করেন তবে আমার জন্য এটি কী সমাধান করেছে তা কেবল সমস্ত গ্রেডেল প্রকল্পকে সতেজ করে তুলছে:
অ্যান্ড্রয়েড স্টুডিও 3.4.1 এর জন্য
কেবল গ্রেড ট্যাবটি খুলুন (ডানদিকে অবস্থিত হতে পারে) এবং তালিকার পিতামাতার উপর ডান ক্লিক করুন ("অ্যান্ড্রয়েড বলা উচিত"), তারপরে "রিফ্রেশ নির্ভরতা" নির্বাচন করুন।
এটি আপনার সমস্যা সমাধান করা উচিত।
এমবি আমি অনেক দেরি করি তবে আমার সমাধানটি একক সংগ্রহস্থলের জন্য। আমি মনে করি ~ / .gradle / * মুছে ফেলা ওভারকিল। আমি যে প্রোব্লিমটি কাটিয়েছি তা হ'ল আমি যে ডিরেক্টরিটি মুছে ফেলি সেখানে সূত্র এবং গ্রেডেল নেক্সাস থেকে নয় অন্য সংস্করণ পাচ্ছিল। এটি এড়াতে আমি পরবর্তী চালাচ্ছি:
~/.gradle$ find . -type d -name 'group.plugins.awssdk'
./caches/modules-2/files-2.1/group.plugins.awssdk
./caches/modules-2/metadata-2.23/descriptors/group.plugins.awssdk
~/.gradle$ rm -r ./caches/modules-2/files-2.1/group.plugins.awssdk ./caches/modules-2/metadata-2.23/descriptors/group.plugins.awssdk
এর পরে গ্রেডেল নেক্সাস থেকে ফাইলগুলি টেনে আনছে।
ক্যাশেড 'রিলিজ' সংস্করণটি রিফ্রেশ করার একমাত্র বিকল্প হ'ল স্থানীয় ক্যাশে সাফ করা।
rm -rf $HOME/.gradle/caches/
ক্যাশেড 'স্ন্যাপশট' সংস্করণটি রিফ্রেশ করতে আপনি করতে পারেন:
./gradlew build --refresh-dependencies
সমস্ত ক্যাশে মোছা আবার সমস্ত নির্ভরশীলতা ডাউনলোড করে তোলে। সুতরাং এটি এত দীর্ঘ সময় নেয় এবং বিরক্তিকর জিনিসটি আবার সমস্ত নির্ভরতা ডাউনলোড করতে আবার অপেক্ষা করুন।
আমি কখনই এটি নীচের উপায়ে সমাধান করতে সক্ষম হতে পারি।
রিফ্রেশ করা দরকার এমন গোষ্ঠীগুলি কেবল মুছুন।
উদাহরণস্বরূপ: আমরা com.user.test গ্রুপটি রিফ্রেশ করতে চাইলে
rm -fr ~/.gradle/caches/modules-2/files-2.1/com.user.test/
তারপরে build.gradle থেকে নির্ভরতা অপসারণ করুন এবং এটি আবার যুক্ত করুন। তাহলে এটি নির্ভরতা রিফ্রেশ করবে যা আমরা চাই।
আমি মনে করি গ্রেড 2.14.1 সমস্যাটি সমাধান করে। গৃহীত উত্তরটি সঠিক, তবে ফ্রেস-নির্ভরতা সহ গ্রেডে একটি বাগ রয়েছে। 2.14.1 এটি স্থির করে।
Https://discuss.gradle.org/t/refresh-d dependferences- should- use- cachechangingmodulesfor- 0s/ 556 দেখুন
এই ডিরেক্টরিটি মুছুন:
C:\Users\[username]\.gradle
বেশিরভাগ ক্ষেত্রে, কেবলমাত্র প্রকল্পটি পুনর্নির্মাণের কৌশলটি করা উচিত। কখনও কখনও আপনাকে ./gradlew build --refresh-dependencies
বেশ কয়েকটি উত্তর ইতিমধ্যে উল্লিখিত হিসাবে চালাতে হয় (আপনার কতটা নির্ভরতা নির্ভর করে তার উপর নির্ভর করে দীর্ঘ সময় লাগে)। কখনই না, কখনও কখনও তাদের কেউই কাজ করবে না: নির্ভরতা কেবল আপডেট হবে না। তারপরে, আপনি এটি করতে পারেন:
NonExistingClass
কারণ সহ)এটি হাস্যকর এবং পাগলের মতো বলে মনে হচ্ছে তবে আমি আসলে এই প্রক্রিয়াটি প্রতিদিনই ব্যবহার করি, কেবল কারণ আমার যে নির্ভরতা প্রয়োজন তা কয়েক ডজন বার আপডেট করা যেতে পারে এবং পর্যাপ্ত সমাধানগুলির কোনওটির কোনও প্রভাব নেই।
আপনি এটি এইভাবে করতে পারেন
https://marschall.github.io/2017/04/17/disabling-gradle-cache.html
গ্রেডল বিল্ড ক্যাশে অক্ষম করা থেকে উদ্ধৃত করা
গ্র্যাডল বিল্ড ক্যাশে আপনি নিয়মিত> গ্র্যাডলের সাথে বড় প্রকল্পগুলি নির্মাণ করার সময় দুর্দান্ত জিনিস হতে পারে। তবে যখনই মাঝে মধ্যে কেবল ওপেন সোর্স> প্রকল্পগুলি তৈরি করা হয় তা দ্রুত বড় হয়ে যেতে পারে।
গ্রেডল বিল্ড ক্যাশে অক্ষম করতে নিম্নলিখিত লাইনটিতে যুক্ত করুন
~/.gradle/gradle.properties
org.gradle.caching=false
আপনি বিদ্যমান ক্যাশে এটি দিয়ে পরিষ্কার করতে পারেন
rm -rf $HOME/.gradle/caches/ rm -rf $HOME/.gradle/wrapper/
আপনি যদি গ্রহিনী ব্যবহার করছেন এবং আপনি যদি গ্রহণের জন্য পুনরায় নির্ভরতা পুনরায় চাপতে চান তবে আপনি আদেশের নীচে চেষ্টা করতে পারেন
gradlew clean cleaneclipse build eclipse --refresh-dependencies
ক্যাশে ফোল্ডারে নির্দিষ্ট নির্ভরতার কেবল একটি ম্যানুয়াল মুছে ফেলা কাজ করে ... এন্টারপ্রাইজ রেপোতে কোনও সহকর্মী দ্বারা নির্মিত একটি শৈল্পিক কারখানা।
আমার ক্ষেত্রে উপরের কোনওটিই কাজ করেনি, আমি যা করেছি তা হ'ল:
build.gradle
, আমার ছিল অমীমাংসিত আমদানি সম্পর্কিত নির্ভরতা মন্তব্যতারপরে আমার আমদানিগুলি আবার ঠিকভাবে সমাধান করা হয়েছিল।
আপনাকে এটি পুনরায় ডাউনলোড করতে হবে, যাতে আপনি নিজেই दूषित ফাইলটি ডাউনলোড এবং প্রতিস্থাপন করতে পারেন এবং আবার আপনার প্রকল্পের সিঙ্ক করতে পারেন। এই অবস্থানে যান সি: \ ব্যবহারকারীগণ [ব্যবহারকারীর নাম] g গ্রেডল \ মোড়ক \ ডিগ্র \ গ্রেডেল 3.3-সমস্ত \ 55gk2rcmfc6p2dg9u9ohc3hw9 \ গ্রেডেল ৩.৩- সমস্ত.জাইপ এখানে গ্রেডেল ৩.৩০লজিপ মুছুন এবং এই সাইট থেকে আবার ডাউনলোড করে এটি প্রতিস্থাপন করুন https: / /services.gradle.org/distributions/ একই ফাইলটি সন্ধান করুন এবং এটি ডাউনলোড করুন এবং সেই জায়গায় পেষ্ট করুন তারপরে আপনার প্রকল্পটি সিঙ্ক করুন। আশা করি এটি আপনার জন্যও কাজ করে।