Apple Silicon のリモート Macで self-hosted CI を回す JVM チーム向けに、私服・地域ミラー・中央の比較、GRADLE_USER_HOME と M2 のキャッシュ配置、
--parallel/workers.max/mvn -T、タイムアウトと指数バックオフを決定表にします。多言語依存はブログ一覧のGo マトリクスも参照ください。
痛点:宣言の食い違い・キャッシュ散在・並列過多
dependencyResolutionManagementだけ私服でもbuildscript/pluginManagementが Central 直だと跨境が残ります。GRADLE_USER_HOMEと~/.m2がジョブごとにズレるとヒット率が落ち、高workers.maxとmvn -T 2Cの併用で出口 HTTP が飽和します。
ミラー端点の比較表(Gradle/Maven 共通)
| 方式 | 例 | 向く場面 |
|---|---|---|
| 私服 | https://nexus.corp/.../maven-public/ | 監査・帯域内完結 |
| 地域+中央 | ミラー → Central/Plugin Portal | 跨境 RTT 削減 CI |
| ハイブリッド | 公開はミラー、社内 jar は releases | exclusiveContent や mirror 順を文書化 |
キャッシュパス(GRADLE_USER_HOME・M2)
| 項目 | パス |
|---|---|
GRADLE_USER_HOME | 既定 ~/.gradle。共有機は /var/cache/ci/gradle 等で全ジョブ統一 |
| Gradle 実体 | $GRADLE_USER_HOME/caches/modules-2/files-2.1/ |
| Maven | ~/.m2/repository または localRepository |
--parallel・ワーカー・mvn -T の目安
コア数を n、同時パイプライン本数を把握したうえで読み替えてください。
| 項目 | 推奨 |
|---|---|
Gradle org.gradle.workers.max | まず max(2,n/2)。429 や await 悪化なら n/4 |
| Maven | -T 1 で取得、ビルドは -T 1C から。余裕時のみ -T 2C |
| 合算 | 同時パイプラインのワーカー積が出口セッションの約七割以内 |
タイムアウト・リトライ(指数バックオフ)
跨境は接続・ソケットを 60〜120 秒から。ラッパーは同一取得に最大三回、待機 二・四・八秒+ジッター数百 ms。下記は gradle.properties 例です。
断片
systemProp.org.gradle.internal.http.connectionTimeout=120000
systemProp.org.gradle.internal.http.socketTimeout=120000
五ステップ
1
repositories・pluginManagement・buildscript・settings.xml の mirror を揃える。
2
export GRADLE_USER_HOME と M2 を runner 間で同一パスに固定する。
3
workers.max と mvn -T を段階適用し、同時 HTTP を数える。
4
タイムアウトとシェルリトライを入れ、ログに URL を残す。
5
gradlew --offline/mvn -o でキャッシュ健全性を週一確認する。
- 数値メモ:共有 Mac でワーカー×パイプラインがコアの約一点五倍を超えたら並列を見直す。
まとめ
2026 年のリモート Mac では端点一本化・キャッシュ固定・並列と接続数の釣り合いが再現性を決めます。Gradle と Maven を併用するジョブでは外向き HTTP の合算が読み取れるようログに残すと切り分けが速くなります。よくある質問は本文下の JSON-LD(FAQPage)にまとめています。
次のステップ:MacPull ホームでリモート Mac の用途を確認し、リモート Mac 購入ページ(ログイン不要で閲覧できる範囲)からプランを選びます。SSH・接続手順はヘルプセンターの接続カテゴリをご覧ください。
リモート Mac
JVM CI を安定させるなら、ノードと接続手順の確認から
ホームで概要を把握し、購入ページでプランを選び、ヘルプで SSH/接続を確認できます(ログイン不要で閲覧できる範囲)。