يوفر هذا البرنامج الإضافي Gradle تنفيذًا لذاكرة التخزين المؤقت التي تستخدم Google Cloud Storage لتخزين عناصر البناء.
تأخذ ذاكرة التخزين المؤقت للإنشاء الخيارات التالية:
خيار | وصف |
---|---|
أوراق اعتماد | ملف مفتاح JSON لحساب الخدمة المطلوب استخدامه، وإلا فسيتم استخدام بيانات اعتماد تطبيق Google Cloud Platform الافتراضية. (خياري) |
دلو | اسم مجموعة Google Cloud Storage (مطلوب) |
بادئة | بادئة المسار للكائنات المكتوبة إلى Google Cloud Storage (اختياري) |
refreshAfterSeconds | مقدار الوقت المطلوب للانتظار قبل أن يتم تجديد الطابع الزمني للعنصر المخزن مؤقتًا والذي لا يزال قيد الاستخدام (اختياري) |
writeThreshold | عدد البايتات التي يبدأ عندها المكون الإضافي في استخدام ملف كمخزن مؤقت لكتابة إدخالات ذاكرة التخزين المؤقت - الافتراضي 8 ميجابايت (اختياري) |
هناك طرق متعددة لاستخدام ذاكرة التخزين المؤقت المستندة إلى Google Cloud Storage داخل مشاريعك.
settings.gradle
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' net.idlestate:gradle-gcs-build-cache:1.3.0 '
}
}
apply plugin : ' net.idlestate.gradle-gcs-build-cache '
buildCache {
local {
enabled = false
}
remote( GCSBuildCache . class ) {
credentials = ' my-key.json ' // (optional)
bucket = ' my-bucket '
prefix = ' app-cache ' // (optional)
refreshAfterSeconds = 86400 // 24h (optional)
writeThreshold = 8 * 1024 * 1024 // 8 MiB
enabled = true
push = true
}
}
settings.gradle
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' net.idlestate:gradle-gcs-build-cache:1.3.0 '
}
}
import net.idlestate.gradle.caching.GCSBuildCache
import net.idlestate.gradle.caching.GCSBuildCacheServiceFactory
buildCache {
local {
enabled = false
}
registerBuildCacheService( GCSBuildCache . class, GCSBuildCacheServiceFactory . class )
remote( GCSBuildCache . class ) {
credentials = ' my-key.json ' // (optional)
bucket = ' my-bucket '
prefix = ' app-cache ' // (optional)
refreshAfterSeconds = 86400 // 24h (optional)
writeThreshold = 8 * 1024 * 1024 // 8 MiB
enabled = true
push = true
}
}
initscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' net.idlestate:gradle-gcs-build-cache:1.3.0 '
}
}
import net.idlestate.gradle.caching.GCSBuildCache
import net.idlestate.gradle.caching.GCSBuildCacheServiceFactory
gradle . settingsEvaluated { settings ->
settings . buildCache {
local {
enabled = false
}
registerBuildCacheService( GCSBuildCache . class, GCSBuildCacheServiceFactory . class )
remote( GCSBuildCache . class ) {
credentials = ' my-key.json ' // (optional)
bucket = ' my-bucket '
prefix = ' app-cache ' // (optional)
refreshAfterSeconds = 86400 // 24h (optional)
writeThreshold = 8 * 1024 * 1024 // 8 MiB
enabled = true
push = true
}
}
}
% ./gradlew --build-cache --init-script init-build-cache.gradle <task>
ستؤدي الخطوات التالية إلى إنشاء مجموعة Google Cloud Storage باسم $BUCKET
كجزء من مشروع GCP $PROJECT
في $REGION
مع إمكانية الوصول الخاص. يتوفر gsutil
كجزء من Google Cloud SDK.
% gsutil mb -p $PROJECT -c إقليمي -l $REGION gs://$BUCKET [...] % gsutil acl set gs الخاص://$BUCKET [...]
لإنشاء حساب خدمة $ACCOUNT
مع إمكانية الوصول إلى المجموعة، يجب تنفيذ الأوامر التالية.
% حسابات خدمة gcloud iam تنشئ $ACCOUNT --display-name "حساب الخدمة للوصول إلى ذاكرة التخزين المؤقت لإنشاء Gradle في Google Cloud Storage" [...] % gsutil acl ch -u $ACCOUNT@$PROJECT.iam.gserviceaccount.com:WRITE gs://$BUCKET [...]
يتم إنشاء ملف مفتاح JSON $KEY_FILE
الذي يمكن استخدامه بواسطة البرنامج الإضافي Gradle للوصول إلى المجموعة باستخدام العبارة التالية.
% إنشاء مفاتيح حسابات خدمة gcloud iam $KEY_FILE --iam-account $ACCOUNT@$PROJECT.iam.gserviceaccount.com [...]
إذا كان يجب حذف العناصر المخزنة مؤقتًا بعد أسبوعين، فيجب تطبيق قواعد دورة الحياة مثل ما يلي على الحاوية.
{
"rule" :
[
{
"action" : { "type" : " Delete " },
"condition" : { "age" : 14 }
}
]
}
% مجموعة قواعد دورة حياة gsutil.json gs://$BUCKET [...]
رخصة