গ্রেড ক্যাশে সাফ করবেন কীভাবে?


317

আমি অ্যান্ড্রয়েড স্টুডিওটি ব্যবহার করার চেষ্টা করছি, এবং আমি প্রথমবার এটি বুট করার পরে এটি সংকলন করতে 45 ​​মিনিটের মতো লাগে ... আমি যদি অ্যাপ্লিকেশনটি ছাড়ি না, তবে তা ঠিক আছে - পরবর্তী প্রতিটি সংকলন / অ্যাপ্লিকেশনটি চালিয়ে যাবে প্রায় 45 সেকেন্ড।

আমি আমার কিছু ক্যাশে যাচাই করার চেষ্টা করেছি: .gradle/cachesআমার হোম ডিরেক্টরিতে একটি ফোল্ডার রয়েছে এবং এতে 123 এমবি রয়েছে।

.gradleআমার প্রকল্প ফোল্ডারে একটি ফোল্ডারও রয়েছে ... এর taskArtifactsমধ্যে একটি 200 এমবি এর মতো ছিল। আমি এলোমেলোভাবে তাদের উভয় nuke ভয়। ফোল্ডারগুলির কোন অংশগুলি মুছে ফেলা নিরাপদ?

gradle assembleঅ্যাপ্লিকেশনটি প্রথমবার লোড করার পরে কেন আমার অ্যান্ড্রয়েড স্টুডিওটি চিরকালের জন্য কাজটি চালাচ্ছে তার জন্য আরও ভাল ব্যাখ্যা আছে ?

আমি কি খুব ইন্টেলিজ ক্যাশেও সাফ করতে পারি?


3
আমি পরে জানতে পেরেছিলাম যে সংকলনের 45 মিনিট হ'ল কারণ আমি সেটিংসটি Compiler -> Gradleনা করার জন্য পরিবর্তন করেছি Use in-process build। ক্যাশে কিছু করার নেই
ডেভিড টি।

উত্তরগুলির কোনওটিই সহায়তা করেনি। দেখা যাচ্ছে কিছু চিত্র দূষিত হয়ে গেছে। উইন্ডোজ এক্সপ্লোরারগুলিতে চিত্রগুলি খোলার সাথে সাথে আপনাকে দেখায় যে কোন চিত্রগুলি দূষিত হয়েছে (যার জন্য এটি পূর্বরূপ লোড করে না)। প্রতিস্থাপন images ছবি এবং ভয়েলা!
বিমদে

@ ডেভিড-টি আপনি কি এই বিকল্পটির অবস্থান সম্পর্কে ইঙ্গিত করতে পারবেন? আমার সংস্করণ ৩.৩.১ রয়েছে তবে এটি অগ্রাধিকার - বিল্ড, এক্সিকিউশন, ডিপ্লোয়মেন্ট
লিও

উত্তর:


261

@ ব্র্যাডফোর্ড gradle.properties২০০00 মন্তব্যগুলিতে যেমন উল্লেখ করেছে, সেখানে একটি ফাইলের পাশাপাশি বিশ্বব্যাপী গ্রেড স্ক্রিপ্টগুলি থাকতে পারে $HOME/.gradle। এই ক্ষেত্রে এই ডিরেক্টরিটির সামগ্রী মুছে ফেলার সময় অবশ্যই বিশেষ মনোযোগ দিতে হবে।

.gradle/cachesডিরেক্টরি ঝুলিতে Gradleবিল্ড ক্যাশে। সুতরাং আপনার যদি বিল্ড ক্যাশে সম্পর্কে কোনও ত্রুটি থাকে তবে আপনি এটি মুছতে পারেন।


43
একটি বিষয় লক্ষণীয় হ'ল যদি আপনার নিজের ডিরেক্টরি ডিরেক্টরিতে আপনার .gradle ফোল্ডারে গ্রেড.প্রোপার্টি ফাইল থাকে তবে আপনি পুরো ফোল্ডারটি মুছতে পারবেন না। সাধারণত, কেবল গ্রেডল / ক্যাশে মুছে ফেলা গ্র্যাডলকে সমস্ত নির্ভরতা পুনরায় ডাউনলোড করতে যথেষ্ট।
ব্র্যাডফোর্ড

1
অ্যান্ড্রয়েড স্টুডিওতে প্রতিটি আপডেটের সাথে গ্রেড বিল্ডগুলি ধীরে ধীরে ধীরে ধীরে। কেন এমন হয় যে আমি যখন ডিভাইসে মোতায়েন করি, অ্যাপ চালানো বন্ধ করি এবং তারপরে আবার মোতায়েন করি (কোনও কোড কোনও স্পর্শ না করেই!) অ্যান্ড্রয়েড স্টুডিওতে আবার কোনও বিল্ড তৈরি করতে এবং এটি স্থাপন করতে 2 মিনিট সময় লাগে। এটা ফ্রিগিন নাট্জ
কেউ কেউ কোথাও

1
সিস্টেম ক্যাশেগুলি পরিষ্কার করার জন্য অ্যান্ড্রয়েড স্টুডিওতে: অ্যান্ড্রয়েড স্টাডিও প্রধান মেনুতে, ফাইলটি নির্বাচন করুন ক্যাশে / পুনঃসূচনা করুন এবং মেনু> পরিষ্কার প্রকল্প
শমু

367

গ্রেডল ক্যাশে লোকেটে

  • উইন্ডোজে: %USER_HOME%\.gradle/caches/
  • ম্যাক / ইউনিক্সে: ~/.gradle/caches/

আপনি এই ডিরেক্টরিতে ব্রাউজ করতে পারেন এবং ম্যানুয়ালি এটিকে মুছতে বা চালাতে পারেন

rm -rf $HOME/.gradle/caches/

ইউনিক্স সিস্টেমে এই কমান্ডটি চালনাও নির্ভরতা ডাউনলোড করতে বাধ্য করবে।

আপডেট 2: বর্তমান প্রকল্পের অ্যান্ড্রয়েড বিল্ড ক্যাশে সাফ করুন

দ্রষ্টব্য: অ্যান্ড্রয়েড স্টুডিওর ফাইল | অকার্যকর ক্যাশে / পুনঃসূচনা অ্যান্ড্রয়েড বিল্ড ক্যাশে সাফ করে না, তাই আপনাকে এটি আলাদাভাবে পরিষ্কার করতে হবে।

উইন্ডোজে:

gradlew cleanBuildCache

ম্যাক বা লিনাক্সে:

./gradlew cleanBuildCache

20
এটি কোনও মাভেন নির্ভরতার ক্যাশে সাফ করে নি। আমি মাভেন সংগ্রহশালা থেকে গ্রন্থাগারটি মুছলাম এবং অ্যান্ড্রয়েড স্টুডিও ক্যাশেগুলি বাতিল করে দিয়েছি, তবে প্রকল্পটি এখনও তৈরি করে। এর অর্থ মভেন নির্ভরতার জন্য গ্রেড ক্যাশে সাফ করা হয়নি।
mattm

2
আপনি যেভাবে বর্ণনা করেছেন তা কেবলমাত্র মূল প্রকল্প এবং এটির প্রকল্পের নির্ভরতা থেকে ক্যাশে পরিষ্কার করবে তবে গ্রন্থাগারের নির্ভরতা অক্ষত। আপনি কীভাবে অ্যান্ড্রয়েড স্টুডিওর ক্যাশে পরিষ্কার করবেন তা বর্ণনা করেছেন, তবে গ্রেডের ক্যাশে নয়।
লিয়ানড্রয়েড

হ্যাঁ, তবে আমি প্রকল্পটি লোড করার আগে এটি ম্যাকের উপরে উপস্থিত হবে না।
milosmns

এটি এখনও সর্বশেষতম সংস্করণ অ্যান্ড্রয়েড স্টুডিওতে ভাল কাজ করে
রাজু আপনার পেপ

2
আপনি যদি পরিষ্কার এবং পরিষ্কার ক্যাশে চান, উভয় টাস্ক চালান:gradlew clean cleanBuildCache
সমতুল্য

62

সম্পাদনা: cleanBuildCache আর কাজ করে না

অ্যান্ড্রয়েড গ্রেডেল প্লাগইন এখন গ্রেড ক্যাশে বৈশিষ্ট্যটি ব্যবহার করে

REF: https://guides.gradle.org/ using-build-cache/

ক্যাপ পরিষ্কার করতে

পূর্ববর্তী বিল্ডগুলি থেকে কোনও হিট এড়াতে ক্যাশে ডিরেক্টরিটি পরিষ্কার করুন

 rm -rf $GRADLE_HOME/caches/build-cache-*

REF: https://guides.gradle.org/ using-build-cache/#casing_android_projects

অন্যান্য চাপ

দেখতে এখানে (সম্পাদনাগুলি সহ)।

================

অসম্পূর্ণ তথ্য:

গ্রেড টাস্ক ব্যবহার করে নতুন সমাধান

cleanBuildCache

গ্রেডল, রিভিশন ২.৩.০ (ফেব্রুয়ারী ২০১)) এর জন্য অ্যান্ড্রয়েড প্লাগইনের মাধ্যমে উপলব্ধ

নির্ভরতা:

  1. গ্রেডেল ৩.৩ বা তারও বেশি।
  2. 25.0.0 বা উচ্চতর সরঞ্জামগুলি তৈরি করুন।

আরও এখানে:

https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache

পটভূমি

ক্যাশে তৈরি করুন:

আপনার প্রকল্পটি তৈরি করার সময় অ্যান্ড্রয়েড প্লাগইন উত্পন্ন এমন কিছু আউটপুট সঞ্চয় করে (যেমন আনপ্যাকড আআআআআআআরএস এবং প্রাক-ডেক্সড দূরবর্তী নির্ভরতা)। আপনার পরিষ্কার বিল্ডগুলি ক্যাশে ব্যবহার করার সময় আরও দ্রুত হয় কারণ বিল্ড সিস্টেমগুলি পুনরায় তৈরির পরিবর্তে পরবর্তী বিল্ডগুলির সময় সেই ক্যাশেড ফাইলগুলিকে কেবল পুনরায় ব্যবহার করতে পারে। অ্যান্ড্রয়েড প্লাগইন ২.৩.০ এবং উচ্চতর ব্যবহার করে এমন প্রকল্পগুলি ডিফল্টরূপে বিল্ড ক্যাশে ব্যবহার করে। আরও শিখতে, বিল্ড ক্যাশে সহ বিল্ড গতির উন্নতি পড়ুন।

দ্রষ্টব্য: আপনি বিল্ড ক্যাশে অক্ষম করলে ক্লিনবিল্ড ক্যাশে টাস্কটি উপলভ্য নয়।

ব্যবহার:

জানালা

gradlew cleanBuildCache

লিনাক্স / ম্যাক

gradle cleanBuildCache

অ্যান্ড্রয়েড স্টুডিও / ইন্টেলিজ

gradle tab (default on right) select and run the task or add it via the configuration window 

** গ্রেড / গ্রেডলু হ'ল স্ক্রিপ্টগুলি সমন্বিত সিস্টেম নির্দিষ্ট ফাইল - দয়া করে স্ক্রিপ্টটি কার্যকর করতে সিস্টেম তথ্য দেখুন

  1. লিনাক্স - https://www.cyberciti.biz/faq/howto-run-a-script-in-linux/
  2. উইন্ডোজ - https://technet.microsoft.com/en-us/library/bb613481(v=vs.85).aspx
  3. ম্যাক https://developer.apple.com/library/content/docamentation/LanguagesUtilities/Conceptual/MacAutomationScripttingGuide/index.html

43

গ্রেডল ডিমন সহ যত্ন নিন, আপনাকে পরিষ্কার এবং পুনরায় চালানোর আগে গ্রেড করতে হবে।

প্রথম ডেমন বন্ধ করুন:

./gradlew --stop

ব্যবহার করে ক্যাশে পরিষ্কার করুন:

rm -rf ~/.gradle/caches/

আপনি আবার সংকলন চালান


আপনি ব্যাখ্যা করতে পারেন কেন বা এর সাথে কিছু ডকুমেন্টেশনের লিঙ্ক?
tir38

1
আপনার গ্রেডেল ডিমনটি চললে আপনার গ্রেডেল ক্যাশেগুলি ব্যবহারে আসবে। ফলস্বরূপ, আপনার ওএস সম্ভবত মুছে ফেলা রোধ করবে।
0x539

6

গ্রেডল ডিমন প্রতিটি একক বিল্ড লগের অনেকগুলি বড় টেক্সট ফাইলও তৈরি করে। তারা এখানে সংরক্ষণ করা হয়:

~/.gradle/daemon/X.X/daemon-XXXX.out.log

"৪.৪" এর মতো "এক্সএক্স" গ্রেড সংস্করণ, এবং "এক্সএক্সএক্সএক্সএক্স" "1234" এর মতো কেবল এলোমেলো সংখ্যা।

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

তবে সেগুলি স্বয়ংক্রিয়ভাবে মোছার জন্য আপনি একটি ছোট গ্রেড টাস্ক তৈরি করতে পারেন এবং প্রচুর ডিস্কের জায়গা খালি করতে পারেন:

এটি আপনার যুক্ত করুন app/build.gradle:

android {

    buildTypes {
        ...
    }

    // Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log
    // Source: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905
    def gradle = project.getGradle()
    new File("${gradle.getGradleUserHomeDir().getAbsolutePath()}/daemon/${gradle.getGradleVersion()}").listFiles().each {
        if (it.getName().endsWith('.out.log')) {
            // println("Deleting gradle log file: $it") // Optional debug output
            it.delete()
        }
    }
}

কোন ফাইলগুলি মুছে ফেলা হচ্ছে তা দেখতে আপনি অ্যান্ড্রয়েড স্টুডিও -> দেখুন -> সরঞ্জাম উইন্ডোজ -> বিল্ডে ডিবাগ আউটপুট দেখতে পারেন। তারপরে পাঠ্য আউটপুটটি দেখানোর জন্য সেই উইন্ডোতে "টগল ভিউ" বোতাম টিপুন।

নোট করুন যে একটি গ্রেডল সিঙ্ক বা কোনও গ্রেড বিল্ড ফাইল মুছে ফেলার জন্য ট্রিগার করবে।

আরও ভাল উপায় হ'ল ফাইলগুলি ট্র্যাশ / রিসাইকেল বিনে স্বয়ংক্রিয়ভাবে স্থানান্তরিত করা বা কমপক্ষে প্রথমে ট্র্যাশ ফোল্ডারে অনুলিপি করা। তবে আমি কীভাবে তা করতে জানি না।


ওএসএক্স আইটেমগুলি সরাসরি অপসারণের পরিবর্তে অনুসন্ধানকারী / ট্র্যাসে প্রেরণ করতে, এই পোস্টটিতে অনেকগুলি ভাল ধারণা রয়েছে বলে মনে হচ্ছে আপেল.স্ট্যাকেক্সেঞ্জ
ক্রিকসেস /

4

এখানে পোস্ট করা ভুল তথ্য বলে মনে হচ্ছে। কিছু লোক কীভাবে অ্যান্ড্রয়েড নির্মাতা ক্যাশে (টাস্ক সহ cleanBuildCache) সাফ করবেন সে সম্পর্কে রিপোর্ট করেছেন তবে তারা বুঝতে পারে না যে বলেছে ক্যাচ গ্রেডলের বিল্ড ক্যাশে, এএফআইকে থেকে স্বতন্ত্র।

আমার বোধগম্যতা হ'ল অ্যান্ড্রয়েডের ক্যাশে গ্রেডল'র প্রাকদর্শন করে (এবং অনুপ্রাণিত হয়েছিল) তবে আমি ভুল হতে পারি। গ্রেডলের ক্যাশে ব্যবহার করতে এবং তার নিজস্ব অবসর নেওয়ার জন্য অ্যান্ড্রয়েড নির্মাতাকে আপডেট করা হয়েছিল / করা হয়েছিল কিনা তা আমি জানি না।

সম্পাদনা: অ্যান্ড্রয়েড নির্মাতা ক্যাশে অপ্রচলিত এবং নির্মূল করা হয়েছে। অ্যান্ড্রয়েড গ্রেডল প্লাগইন এখন পরিবর্তে গ্রেডলের বিল্ড ক্যাশে ব্যবহার করে। এই ক্যাশেটি নিয়ন্ত্রণ করতে আপনাকে অবশ্যই গ্রেডলের জেনেরিক ক্যাশে অবকাঠামোর সাথে ইন্টারঅ্যাক্ট করতে হবে।

টিপ: বর্তমানে প্রাসঙ্গিক ক্যাশে সহায়তা পেতে 'অ্যান্ড্রয়েড' কীওয়ার্ড উল্লেখ না করেই গ্রেডলের ক্যাশে সহায়তা অনলাইনে অনুসন্ধান করুন।

সম্পাদনা 2: নীচে একটি মন্তব্যে tir38 এর প্রশ্নের কারণে, আমি একটি অ্যান্ড্রয়েড গ্রেডল প্লাগইন v3.4.2 প্রকল্প ব্যবহার করে পরীক্ষা করছি। গ্রেডেল ক্যাশে org.gradle.caching=trueইন দ্বারা সক্রিয় করা হয়েছে gradle.properties। আমি দু'একটি করি clean buildএবং দ্বিতীয়বার বেশিরভাগ টাস্কগুলি FROM-CACHEতাদের স্থিতি হিসাবে দেখায় , দেখায় যে ক্যাশে কাজ করছে।

আশ্চর্যজনকভাবে, আমার cleanBuildCacheগ্রেড টাস্ক এবং একটি <user-home>/.android/build-cache/3.4.2/ডিরেক্টরি রয়েছে, উভয়ই অ্যান্ড্রয়েড নির্মাতা ক্যাশেটির অস্তিত্বের ইঙ্গিত দিচ্ছে।

আমি এক্সিকিউট করি cleanBuildCacheএবং 3.4.2/ডিরেক্টরি চলে গেছে। পরবর্তী আমি আরও করি clean build:

  • কিছুই পরিবর্তিত হয়নি: বেশিরভাগ টাস্কগুলি FROM-CACHEতাদের স্থিতি হিসাবে দেখায় এবং বিল্ডটি ক্যাশে-সক্ষম গতিতে সম্পন্ন হয়।
  • 3.4.2/ডিরেক্টরি recreated করা হয়।
  • 3.4.2/ডিরেক্টরি খালি (2 জন্য লুকানো, শূন্য দৈর্ঘ্য মার্কার ফাইলগুলি সংরক্ষণ)।

সিদ্ধান্তে:

  1. সমস্ত সাধারণ অ্যান্ড্রয়েড নির্মাতা কার্যের ক্যাচিং গ্রেডল পরিচালনা করে।
  2. নির্বাহ কার্যকরভাবে কোনওভাবে cleanBuildCacheবিল্ড ক্যাশে পরিষ্কার বা প্রভাবিত করে না।
  3. এখনও সেখানে অ্যান্ড্রয়েড নির্মাতা ক্যাশে রয়েছে। এটি অ্যানড্রয়েড বিল্ড টিমটি মুছে ফেলা ভুলে গিয়েছিল যা আবিষ্কারযোগ্য কোড হতে পারে, বা এটি আসলেই অদ্ভুত কিছু ক্যাশে করতে পারে যে কোনও কারণেই গ্রাডল ক্যাশে ব্যবহার করে বা করা যায়নি। ('পারছেন না' বিকল্পটি অত্যন্ত অস্থাবর, আইএমএইচও।)

এরপরে, গ্রেডল ক্যাশে org.gradle.caching=trueথেকে সরিয়ে আমি অক্ষম করি gradle.propertiesএবং এর কয়েকটি চেষ্টা করি clean build:

  • বিল্ডস ধীর।
  • সমস্ত কাজগুলি মৃত্যুদন্ড কার্যকর করা এবং ক্যাশেড বা আপ টু ডেট না হওয়া হিসাবে তাদের স্থিতি প্রদর্শন করে।
  • 3.4.2/ডিরেক্টরি খালি হতে চলতে।

আরও সিদ্ধান্ত:

  1. গ্রেডল ক্যাশে হিট করতে ব্যর্থ হওয়ার জন্য কোনও অ্যান্ড্রয়েড নির্মাতা ক্যাশে ফ্যালব্যাক নেই।
  2. অ্যান্ড্রয়েড নির্মাতা ক্যাশে, কমপক্ষে সাধারণ কাজের জন্য, আমি আগেই বলেছি সত্যিই তা মুছে ফেলা হয়েছে।
  3. সম্পর্কিত অ্যান্ড্রয়েড ডকটিতে পুরানো তথ্য রয়েছে। বিশেষত সেখানে বর্ণিত হিসাবে ক্যাশে ডিফল্টরূপে সক্ষম হয় না এবং গ্রেডল ক্যাশে ম্যানুয়ালি সক্ষম করতে হবে।

সম্পাদনা 3: ব্যবহারকারী টিআর 38 নিশ্চিত করেছে যে অ্যান্ড্রয়েড নির্মাতা ক্যাশে অপ্রচলিত এবং এই অনুসন্ধানের সাথে মুছে ফেলা হয়েছে । tir38 এছাড়াও এই সমস্যা তৈরি করেছে । ধন্যবাদ!


আপনি যেখানে পড়েছেন তার সাথে লিঙ্ক করতে পারবেন যে অ্যান্ড্রয়েড নির্মাতা ক্যাশে এখন অপ্রচলিত এবং এটি এখন গ্রেডলের বিল্ড ক্যাশে ব্যবহার করার পরিবর্তে ব্যবহার করবে?
tir38

@ tir38, নাহ তবে আমি আমার নিজের পরীক্ষার সাথে উপরের উত্তরটি আপডেট করেছি। ধন্যবাদ।
ল্যাঞ্চন

আপনার পরিশ্রমী গবেষণার জন্য একগুচ্ছ ধন্যবাদ। আপনি যা পরীক্ষা করে দেখেছি তার বেশিরভাগটি আপনি নিশ্চিত করে নিন: 1. খালি 3.4.2/dir। ২. cleanBuildCacheকার্যের উপস্থিতি ৩. গ্রেড বিল্ড ক্যাশে অক্ষম করা এবং পুনর্নির্মাণ ক্যাশে হিট করার অ্যান্ড্রয়েড টাস্কগুলির কোনও প্রমাণ দেখায় নি।
tir38

2
আরও কিছুটা হাঁসফাঁস করেছিলাম এবং আমি প্রকৃত নিশ্চয়তা পেয়েছি যে অ্যান্ড্রয়েডের বিল্ড ক্যাশে গ্রেডের ইস্যুয়েট্রেকার. google.com/issues/37324009#comment3 তে রোল করা হয়েছে / ডক পৃষ্ঠাটি অপসারণের জন্য আমি একটি দস্তাবেজের অনুরোধ খুলেছি: ইস্যুজেট্রেকার.google.com/issues/148169019
tir38

2

COMMAND: rm -rf ~/.gradle/caches/


1
@ জোনএডামস আমি আপনার ক্ষমা প্রার্থনা করছি, তবে প্রশ্নটিতে পরিষ্কারভাবে বলা হয়েছে "গ্রেড ক্যাশে সাফ করবেন কীভাবে?"
সেরজ আর্দোভিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.