fix
This commit is contained in:
103
tauri_app/docker/patch-android-gradle-repos.sh
Normal file
103
tauri_app/docker/patch-android-gradle-repos.sh
Normal 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})"
|
||||
Reference in New Issue
Block a user