gradle 내부망 주소로 변경

This commit is contained in:
2026-03-13 14:40:32 +09:00
parent 7430f15697
commit be12366293
94 changed files with 2723 additions and 48 deletions

View File

@@ -646,7 +646,7 @@ code + .copy-button {
<script type="text/javascript">
function configurationCacheProblems() { return (
// begin-report-data
{"diagnostics":[{"locations":[{"path":"C:\\workspace\\kamco-cd-cron\\label\\review-to-geojson\\build.gradle","line":26}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.3.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('url = <value>') instead."}]]}],"problemsReport":{"totalProblemCount":1,"buildName":"TrainingDataReview","requestedTasks":"clean build","documentationLink":"https://docs.gradle.org/9.3.1/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
{"diagnostics":[{"locations":[{"path":"C:\\workspace\\kamco-cd-cron\\label\\review-to-geojson\\build.gradle","line":26}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.3.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('url = <value>') instead."}]]}],"problemsReport":{"totalProblemCount":1,"buildName":"TrainingDataReview","requestedTasks":"clean compileJava testClasses spotlessCheck build","documentationLink":"https://docs.gradle.org/9.3.1/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
// end-report-data
);}
</script>

View File

@@ -0,0 +1,100 @@
#!/usr/bin/env bash
set -euo pipefail
# ===== 설정 =====
OUTDIR="${OUTDIR:-offline-seed}"
M2OUT="$OUTDIR/m2repo"
LOGDIR="$OUTDIR/logs"
mkdir -p "$M2OUT" "$LOGDIR"
# Gradle이 실제로 사용하는 repo (build.gradle과 동일하게 유지)
# - 네 build.gradle은 mavenCentral + osgeo release 를 사용
# - seed를 만들 땐 이 repo들이 열려 있어야 함
GRADLE_CMD=(./gradlew --no-daemon)
# ===== 0) 깨끗하게 시작(선택) =====
# 너무 오래된 캐시 오염 방지용. 필요 없으면 주석 처리.
# rm -rf "${GRADLE_USER_HOME:-$HOME/.gradle}/caches/modules-2"
# ===== 1) 필요한 task로 "resolve를 전부" 트리거 =====
# - spotlessCheck 포함 (google-java-format 받게)
# - testClasses 포함 (test deps + bom/parent 받게)
# - build 포함 (네 build는 spotlessCheck에 dependsOn)
# - 단, test 실행은 제외
echo "[1/4] Running Gradle to trigger ALL resolves..."
"${GRADLE_CMD[@]}" \
clean compileJava testClasses spotlessCheck build \
-x test \
--refresh-dependencies \
--debug \
2>&1 | tee "$LOGDIR/gradle-debug.log"
# ===== 2) debug 로그에서 실제 접근한 Maven artifact URL 추출 =====
# Gradle은 내부적으로 "resource: <url>" 같은 형태로 찍는 경우가 많아서
# http/https URL 중 Maven2 레이아웃에 해당하는 확장자만 뽑는다.
echo "[2/4] Extracting artifact URLs from Gradle debug log..."
grep -Eo 'https?://[^ ]+\.(pom|jar|module|aar|sha1|md5)(\?[^ ]+)?' "$LOGDIR/gradle-debug.log" \
| sed -E 's/\?.*$//' \
| sort -u \
> "$OUTDIR/artifact-urls.txt"
echo " - URLs: $(wc -l < "$OUTDIR/artifact-urls.txt")"
echo " - saved: $OUTDIR/artifact-urls.txt"
# ===== 3) URL들을 m2 레이아웃으로 다운로드 =====
# URL 형태가 .../repository/maven-public/... 이거나 MavenCentral/osgeo 일 수 있음
# 공통점: Maven2 레이아웃(/groupId/artifactId/version/...)을 그대로 가지고 있음
echo "[3/4] Downloading artifacts into m2 layout..."
download_one() {
local url="$1"
# Maven2 레이아웃에서 groupId부터의 상대경로를 잡는다.
# 케이스:
# - https://repo1.maven.org/maven2/<path>
# - https://repo.osgeo.org/repository/release/<path>
# - http://.../repository/maven-public/<path>
local rel
if [[ "$url" == *"/maven2/"* ]]; then
rel="${url#*/maven2/}"
elif [[ "$url" == *"/repository/"*"/"*"/"* ]]; then
# /repository/<repo-name>/ 이후를 상대경로로
rel="$(echo "$url" | sed -E 's#^https?://[^/]+/repository/[^/]+/##')"
else
# 알 수 없는 형태면 스킵(대부분 없음)
echo " - [SKIP] unknown url form: $url"
return 0
fi
# 저장 경로
local dest="$M2OUT/$rel"
mkdir -p "$(dirname "$dest")"
if [[ -f "$dest" ]]; then
return 0
fi
echo " - [GET] $rel"
curl -fSL "$url" -o "$dest" || {
# sha1/md5 같은 건 서버에 없을 수 있음 → 무시
echo " !! failed: $url"
rm -f "$dest" 2>/dev/null || true
return 0
}
}
export -f download_one
export M2OUT
# 순차 다운로드(안정성). 병렬 원하면 xargs -P로 바꿀 수 있음.
while IFS= read -r url; do
[[ -z "$url" ]] && continue
download_one "$url"
done < "$OUTDIR/artifact-urls.txt"
# ===== 4) tgz 생성 =====
echo "[4/4] Packing seed..."
tar -czf "$OUTDIR/m2repo-seed.tgz" -C "$OUTDIR" m2repo
ls -lh "$OUTDIR/m2repo-seed.tgz"
echo "OK: $OUTDIR/m2repo-seed.tgz"