This commit is contained in:
lendry
2026-06-26 20:15:13 +03:00
parent 95ef9a9862
commit 65abf17421
5 changed files with 210 additions and 2 deletions

View File

@@ -0,0 +1,103 @@
#!/usr/bin/env bash
# Adds reliable Google Maven mirrors for Android Gradle Plugin resolution.
set -euo pipefail
ANDROID_GEN="${1:-/workspace/tauri_app/src-tauri/gen/android}"
if [ ! -d "${ANDROID_GEN}" ]; then
echo "Android project not found: ${ANDROID_GEN}" >&2
exit 1
fi
GRADLE_USER_HOME="${GRADLE_USER_HOME:-/root/.gradle}"
LOCAL_REPO="${ANDROID_AGP_LOCAL_REPO:-/opt/android-agp-maven}"
mkdir -p "${GRADLE_USER_HOME}/init.d"
cat > "${GRADLE_USER_HOME}/init.d/agp-repos.gradle" <<EOF
def googleMirrors = []
def localAgpRepo = new File('${LOCAL_REPO}')
if (localAgpRepo.exists()) {
googleMirrors.add(localAgpRepo.toURI().toString())
}
googleMirrors.addAll([
'https://maven.google.com',
'https://dl.google.com/android/maven2/',
'https://dl.google.com/dl/android/maven2/'
])
gradle.beforeSettings { settings ->
settings.pluginManagement {
repositories {
googleMirrors.each { url ->
maven { setUrl(url) }
}
google()
mavenCentral()
gradlePluginPortal()
}
}
}
allprojects {
buildscript {
repositories {
googleMirrors.each { url ->
maven { setUrl(url) }
}
google()
mavenCentral()
}
}
repositories {
googleMirrors.each { url ->
maven { setUrl(url) }
}
google()
mavenCentral()
}
}
EOF
insert_maven_repos() {
local file="$1"
[ -f "${file}" ] || return 0
if grep -q 'maven.google.com' "${file}"; then
return 0
fi
awk '
/repositories[[:space:]]*\{/ {
print
print " maven { url = uri(\"https://maven.google.com\") }"
print " maven { url = uri(\"https://dl.google.com/android/maven2/\") }"
print " maven { url = uri(\"file:///opt/android-agp-maven\") }"
next
}
{ print }
' "${file}" > "${file}.tmp" && mv "${file}.tmp" "${file}"
}
insert_maven_repos "${ANDROID_GEN}/build.gradle.kts"
insert_maven_repos "${ANDROID_GEN}/buildSrc/build.gradle.kts"
insert_maven_repos "${ANDROID_GEN}/app/build.gradle.kts" 2>/dev/null || true
if [ -f "${ANDROID_GEN}/settings.gradle" ] && ! grep -q 'pluginManagement' "${ANDROID_GEN}/settings.gradle"; then
{
cat <<'EOF'
pluginManagement {
repositories {
maven { url = uri("file:///opt/android-agp-maven") }
maven { url = uri("https://maven.google.com") }
maven { url = uri("https://dl.google.com/android/maven2/") }
google()
mavenCentral()
gradlePluginPortal()
}
}
EOF
cat "${ANDROID_GEN}/settings.gradle"
} > "${ANDROID_GEN}/settings.gradle.tmp" && mv "${ANDROID_GEN}/settings.gradle.tmp" "${ANDROID_GEN}/settings.gradle"
fi
echo "==> Gradle repositories patched for AGP (${ANDROID_GEN})"