コトリン設定依存関係解決管理ミラー鎖を揃えてもプラグインとライブラリの順序ズレが取得を揺らします。並列ワーカキャッシュ鍵ロック検収決定表と実行値で一枚化しました。ホーム技術ブログ一覧ココアポッズ実務えすぴーえむ決定表と併読ください。

越境取得ボトルネック

1

順序社内庫混在でヘッダ欠落

2

並列--parallel と多重でデーモン落ち

3

:ブランチ名のみでキャッシュ外れ

決定マトリクス

場面ミラー並列
単発公開二段半数
本番社内先頭四分の三上限

早引きジョブ同時を先に抑えを固定。

settings.gradle.kts ミラー鎖

プラグイン依存順序同一社内先頭

コピペ断片

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
  repositories {
    maven { url = uri("https://INTERNAL/maven") }
    maven { url = uri("https://CORP_MIRROR/central") }
    mavenCentral(); google()
  }
}
pluginManagement {
  repositories {
    maven { url = uri("https://INTERNAL/plugins") }
    gradlePluginPortal()
  }
}

並列・gradle.properties

--parallel多重ジョブと積算メモリ七割目安。

コピペ:gradle.properties

org.gradle.parallel=true
org.gradle.workers.max=4
org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8
systemProp.http.connectionTimeout=60000
systemProp.http.socketTimeout=120000
systemProp.org.gradle.internal.http.retryCount=5
項目初期
ワーカ半数〜四分の三
ヒープ六ギガバイト前後

リモートキャッシュ鍵

GRADLE_USER_HOMEジョブ単位で隔離し鍵にロック系列を含めパイプライン名のみは避ける。

素子扱い
ロックファイル群含める(取得固定)
ブランチ名のみ避ける(肥大で外れ続ける)

退避・ロック五手順

1

週次クリーンで単路確認。

2

四・十二・三十・九十秒退避でワーカ絞り

3

ロック差分は二名レビュー。

4

検証タスクを前置ゲートへ。

5

ヒット率ログ保全。

シェル断片

export GRADLE_USER_HOME="${GRADLE_USER_HOME:-$PWD/.gradle-$CI_JOB_ID}"
for attempt in 1 2 3 4 5; do
  ./gradlew --parallel --max-workers="${MAX_WORKERS:-4}" build \
    -Dorg.gradle.internal.repository.max.tentatives=5 && exit 0
  case "$attempt" in 1) sleep "${B1:-4}";; 2) sleep "${B2:-12}";; 3) sleep "${B3:-30}";; 4) sleep "${B4:-90}";; *) exit 1;; esac
done

FAQ

問い 認証
答え 経路分離と環境変数トークン。

問い 証明書
答え 鍵鎖とピンを疑いキーチェーン同期

問い 混在
答え 順序固定レビューし関連表と整合。

まとめと次の一手

ミラー鎖・並列・鍵・ロック・退避を一体設計しリモート実機で実測。

引用
  • ワーカ四分の三・多重半数
  • ヒープ六ギガメタ五百十二
  • 再試行五回上限

ホーム料金購入ヘルプはログイン不要。一覧へ。

Gradle 越境 CI

ミラー鎖とビルドキャッシュをリモート Mac で実測する

料金・購入・ヘルプ・一覧はログイン不要。