리포지토리에서 종속성을 다시 다운로드하도록 gradle에 지시하는 방법은 무엇입니까?
답변
일반적으로 명령 줄 옵션 –refresh-dependencies 를 사용하여 캐시의 종속성을 새로 고칠 수 있습니다 . 에서 캐시 된 파일을 삭제할 수도 있습니다 ~/.gradle/caches
. 다음 빌드에서 Gradle은 다시 다운로드를 시도합니다.
특정 사용 사례는 무엇입니까? 동적 종속성 버전 또는 SNAPSHOT 버전을 사용합니까?
Unix 시스템에서 Gradle이 다음을 사용하여 다운로드 한 모든 기존 아티팩트 (아티팩트 및 메타 데이터)를 삭제할 수 있습니다.
rm -rf $HOME/.gradle/caches/
답변
최신 버전의 Gradle을 사용하는 경우 –refresh-dependencies 옵션을 사용할 수 있습니다.
./gradlew build --refresh-dependencies
Gradle 매뉴얼을 참조하십시오 .
–refresh-dependencies 옵션은 Gradle에게 해결 된 모듈 및 아티팩트에 대한 모든 캐시 된 항목을 무시하도록 지시합니다. 동적 버전이 다시 계산되고 모듈이 새로 고쳐지고 아티팩트가 다운로드 된 모든 구성된 리포지토리에 대해 새로운 해결이 수행됩니다.
답변
종속성을 ‘변경’으로 플래그 지정하여 빌드 스크립트에서 일부 종속성을 다시 다운로드하도록 Gradle에 지시 할 수 있습니다. 그런 다음 Gradle은 24 시간마다 업데이트를 확인하지만 resolutionStrategy DSL을 사용하여 구성 할 수 있습니다. SNAPSHOT 또는 NIGHTLY 빌드에 이것을 사용하는 것이 유용하다는 것을 알았습니다.
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 }
이 포럼 스레드 에서이 솔루션을 찾았습니다 .
답변
MAC의 경우
./gradlew build --refresh-dependencies
Windows의 경우
gradlew build --refresh-dependencies
시도해 볼 수도 있습니다 gradlew assembleDevelopmentDebug --refresh-dependencies
답변
Windows의 경우 … gradle을 다시 다운로드하여 특정 종속성 을 만들려면
-
아래 디렉토리에서 다시 다운로드하려는 종속성을 삭제하십시오.
C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1
-
경로에서 모든 메타 데이터 디렉토리를 삭제하십시오 .
C:\Users\%USERNAME%\.gradle\caches\modules-2\metadata-*
-
프로젝트의 루트 디렉토리에서 실행하십시오
gradle build
(또는gradlew build
gradle wrapper를 사용하는 경우).
참고 : 위 파일 경로의 숫자는 다를 수 있습니다.
답변
캐시 된 항아리가있는 폴더를 제거 할 수 있습니다.
제 경우에는 Mac 에서 라이브러리가 경로에 캐시되었습니다.
/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove
캐시 된 라이브러리 폴더 (위의 예제에서 “cached-library-to-remove”)를 제거하고 프로젝트의 빌드 폴더를 삭제하고 다시 컴파일했습니다. 신선한 도서관은 그때 다운로드되었습니다.
답변
여기에 제시된 답변과 같이 전체 gradle 캐시를 제거하는 대신 특정 그룹 또는 이슈 ID에 대한 캐시를 삭제할 수 있습니다. 내 기능에 다음 기능을 추가했습니다 .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
그런 다음 다음 빌드 또는 재 동기화하면 gradle이 종속성을 다시 다운로드합니다.