gradle 캐시를 지우는 방법은 무엇입니까? .gradle 내 프로젝트 폴더의

Android Studio를 사용하려고하는데 처음 부팅 할 때 컴파일하는 데 45 분이 걸립니다 … 응용 프로그램을 종료하지 않으면 괜찮습니다-각 후속 컴파일 / 실행에는 앱이 필요합니다 약 45 초

내 캐시 중 일부를 확인하려고했습니다. .gradle/caches 홈 디렉토리에 폴더가 있으며 123MB가 들어 있습니다.

또한있다 .gradle 내 프로젝트 폴더의 폴더 … 중 하나는 taskArtifacts2백메가바이트 같았다. 나는 둘 다 무작위로 핵무기를 두려워합니다. 폴더의 어떤 부분을 삭제해도 안전한가요?

내 Android Studio가 계속 실행되는 이유에 대한 더 나은 설명이 있습니까? gradle assemble애플리케이션을 처음로드 할 때 작업 있습니까?

intellij 캐시도 삭제해야합니까?



답변

@ Bradford20000이 주석에서 지적했듯이 gradle.properties파일 아래에 전역 gradle 스크립트 가있을 수 있습니다 $HOME/.gradle. 이 경우이 디렉토리의 내용을 삭제할 때 특별한주의를 기울여야합니다.

.gradle/caches디렉토리는 보유하고 Gradle빌드 캐시를. 따라서 빌드 캐시에 대한 오류가 있으면 삭제할 수 있습니다.


답변

Gradle 캐시는

  • Windows에서 : %USER_HOME%\.gradle/caches/
  • Mac / Unix의 경우 : ~/.gradle/caches/

이 디렉토리를 찾아 수동으로 삭제하거나 실행할 수 있습니다

rm -rf $HOME/.gradle/caches/

유닉스 시스템에서. 이 명령을 실행하면 종속성이 강제로 다운로드됩니다.

업데이트 2 : 현재 프로젝트 Android 빌드 캐시 지우기

참고 : Android Studio의 파일 | 캐시 무효화 / 다시 시작 은 Android 빌드 캐시를 지우지 않으므로 별도로 정리해야합니다.

Windows에서 :

gradlew cleanBuildCache

Mac 또는 Linux에서 :

./gradlew cleanBuildCache


답변

편집 : cleanBuildCache 더 이상 작동하지 않습니다

안드로이드 gradle 플러그인은 이제 gradle 캐시 기능을 사용합니다

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

캐시를 지우려면

이전 빌드에서 적중되지 않도록 캐시 디렉토리를 정리하십시오.

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

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

다른 치수

여기를 참조 하십시오 (편집 포함)를 .

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

폐기 정보 :

gradle 작업을 사용하는 최신 솔루션

cleanBuildCache

Gradle, 개정판 2.3.0 용 Android 플러그인을 통해 사용 가능 (2017 년 2 월)

종속성 :

  1. Gradle 3.3 이상
  2. 빌드 도구 25.0.0 이상

더 많은 것 :

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

배경

캐시 작성 :

프로젝트를 빌드 할 때 Android 플러그인이 생성하는 특정 출력 (예 : 패키지화되지 않은 AAR 및 사전에 덱싱 된 원격 종속성)을 저장합니다. 빌드 시스템은 캐시 된 파일을 다시 작성하는 대신 후속 빌드 중에 단순히 재사용 할 수 있기 때문에 캐시를 사용하는 동안 클린 빌드가 훨씬 빠릅니다. Android 플러그인 2.3.0 이상을 사용하는 프로젝트는 기본적으로 빌드 캐시를 사용합니다. 자세한 내용은 빌드 캐시로 빌드 속도 향상을 참조하십시오.

참고 : 빌드 캐시를 비활성화하면 cleanBuildCache 작업을 사용할 수 없습니다.

용법:

창문

gradlew cleanBuildCache

리눅스 / 맥

gradle cleanBuildCache

안드로이드 스튜디오 / IntelliJ

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

** gradle / gradlew는 스크립트가 포함 된 시스템 별 파일입니다. 스크립트를 실행하는 방법은 시스템 정보를 참조하십시오

  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/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html

답변

gradle 데몬을 조심하십시오. 그라들을 지우고 다시 실행하기 전에 중지해야합니다.

첫 번째 데몬을 중지하십시오.

./gradlew --stop

다음을 사용하여 캐시를 정리하십시오.

rm -rf ~/.gradle/caches/

다시 당신이 컴파일을 실행


답변

gradle 데몬은 또한 모든 단일 빌드 로그의 많은 큰 텍스트 파일을 만듭니다. 그들은 여기에 저장됩니다 :

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

“XX”는 “4.4”와 같은 사용중인 gradle 버전이며 “XXXX”는 “1234”와 같은 임의의 숫자입니다.

몇 개월 만에 전체 크기가 수백 MB까지 커질 수 있습니다. . 로깅을 비활성화 할 수있는 방법이 없으며 파일이 자동으로 삭제되지 않으므로 실제로 보관할 필요가 없습니다.

그러나 작은 gradle 작업을 만들어 자동으로 삭제하고 많은 디스크 공간을 확보 할 수 있습니다.

이것을 다음에 추가하십시오 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()
        }
    }
}

어떤 파일이 삭제되는지 확인하려면 Android Studio->보기-> 도구 창-> 빌드에서 디버그 출력을 볼 수 있습니다. 그런 다음 해당 창에서 “토글보기”버튼을 눌러 텍스트 출력을 표시하십시오.

Gradle Sync 또는 Gradle Build는 파일 삭제를 트리거합니다.

더 좋은 방법은 파일을 휴지통 / 휴지통으로 자동으로 옮기거나 최소한 휴지통 폴더에 먼저 복사하는 것입니다. 그러나 나는 그것을하는 방법을 모른다.


답변

여기에 잘못된 정보가 게시 된 것 같습니다. 어떤 사람들은 안드로이드 빌더 캐시를 지우는 방법에 대해보고합니다 (작업 포함)cleanBuildCache 하지만 ) 캐시가 Gradle의 빌드 캐시 AFAIK와 독립적이라는 것을 깨닫지 못하는 것 같습니다.

내 이해는 Android의 캐시가 Gradle보다 오래되고 영감을 받았다는 것입니다.하지만 잘못되었을 수 있습니다. 안드로이드 빌더가 Gradle의 캐시를 사용하고 자체적으로 은퇴하도록 업데이트 될지 여부는 모르겠습니다.

편집 : Android 빌더 캐시는 더 이상 사용되지 않으며 제거되었습니다. Android Gradle 플러그인은 이제 Gradle의 빌드 캐시를 대신 사용합니다. 이 캐시를 제어하려면 이제 Gradle의 일반 캐시 인프라와 상호 작용해야합니다.

팁 : 키워드 ‘android’를 언급하지 않고 온라인으로 Gradle의 캐시 도움말을 검색하여 현재 관련 캐시에 대한 도움말을 얻으십시오.

편집 2 : 아래 의견에 tir38의 질문으로 인해 Android Gradle 플러그인 v3.4.2 프로젝트를 사용하여 테스트하고 있습니다. Gradle을 캐시로 사용할 수 있습니다 org.gradle.caching=true에서 gradle.properties. 나는 clean build두 번째로 대부분의 작업을 보여줍니다FROM-CACHE 로 상태가 표시되어 캐시가 작동 중임을 나타냅니다.

놀랍게도, 나는 cleanBuildCachegradle 작업과 <user-home>/.android/build-cache/3.4.2/디렉토리를 가지고 있는데, 둘 다 안드로이드 빌더 캐시가 있음을 암시합니다.

나는 실행 cleanBuildCache하고 3.4.2/디렉토리는 사라졌다. 다음으로 나는 또 다른 일을합니다 clean build:

  • 변경 사항 없음 : 대부분의 작업 FROM-CACHE이 상태로 표시 되며 빌드가 캐시 가능 속도로 완료되었습니다.
  • 3.4.2/디렉토리가 다시 만들어집니다.
  • 3.4.2/디렉토리가 비어 (2, 길이 제로 마커 파일을 숨겨진 저장).

결론 :

  1. 모든 일반 Android 빌더 작업의 캐싱은 Gradle에서 처리합니다.
  2. 실행 cleanBuildCache은 빌드 캐시를 지우거나 영향을 미치지 않습니다.
  3. 여전히 안드로이드 빌더 캐시가 있습니다. 이것은 안드로이드 빌드 팀이 제거하는 것을 잊어 버린 흔적 코드 일 수 있거나 실제로 어떤 이유로 든 Gradle 캐시를 사용하여 이식 할 수 없거나 이상한 것으로 이상한 것을 캐시 할 수 있습니다. ( ‘HONT’옵션은 크게 개선 될 수 없습니다.)

다음, 난 제거하여 Gradle을 캐시를 비활성화 org.gradle.caching=true에서 gradle.properties와 나는 몇 가지를 시도 clean build:

  • 빌드가 느립니다.
  • 모든 작업은 상태가 캐시되어 있거나 최신 상태가 아니라 실행중인 것으로 표시합니다.
  • 3.4.2/디렉토리가 비어되고 있습니다.

더 많은 결론 :

  1. Gradle 캐시에 도달하지 못한 경우에 대한 Android 빌더 캐시 폴 백이 없습니다.
  2. 적어도 일반적인 작업을 위해 Android 빌더 캐시는 실제로 앞에서 언급 한 것처럼 제거되었습니다.
  3. 관련 Android 문서 에 오래된 정보가 포함되어 있습니다. 특히 캐시 여기에 명시된대로 기본적 으로 활성화되어 있지 않으며 Gradle 캐시는 수동으로 활성화해야합니다.

편집 3 : 사용자 tir38은 Android 빌더 캐시가 더 이상 사용되지 않으며이 찾기 로 제거되었음을 확인했습니다 . tir38 도이 문제를 만들었습니다 . 감사!


답변

명령: rm -rf ~/.gradle/caches/