내부망 빌드 스크립트 추가: Gradle 없이 JDK만으로 빌드 지원
- build-internal.sh 및 build-internal.bat 생성 - 내부망 빌드 가이드 문서(BUILD-INTERNAL.md) 추가
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# damo-manager 내부망 빌드 안내
|
||||
|
||||
이 번들은 소스코드와 빌드 스크립트만 포함한다. 인터넷·Gradle 없이 **JDK 만으로** 빌드된다.
|
||||
|
||||
## 요구사항
|
||||
|
||||
- JDK 8 이상 (`javac`, `jar` 가 PATH 에 있어야 함)
|
||||
- JDK 9 이상이면 스크립트가 자동으로 `--release 8` 을 적용해 Java 8 타깃으로 컴파일한다.
|
||||
|
||||
## 빌드
|
||||
|
||||
```sh
|
||||
# Linux / Unix
|
||||
sh build-internal.sh
|
||||
|
||||
# Windows
|
||||
build-internal.bat
|
||||
```
|
||||
|
||||
산출물: `build-internal/damo-manager.jar`
|
||||
|
||||
## 검증
|
||||
|
||||
```sh
|
||||
java -jar build-internal/damo-manager.jar sha256 test
|
||||
```
|
||||
|
||||
bypass 모드(기본값)로 동작하면 정상. 운영 모드는 `-Ddamo-manager.enabled=true` + scpdb 라이브러리 필요 (상세는 README.md 참고).
|
||||
|
||||
## 참고
|
||||
|
||||
- `src/stub/java` 의 scpdb 가짜 시그니처는 컴파일 통과 전용이며 jar 에 포함되지 않는다.
|
||||
- 내부망에 Gradle 이 설치되어 있다면 `gradle clean build` 도 가능하다. 이 프로젝트는 외부 라이브러리 의존성이 없어 저장소(인터넷) 접근 없이 빌드된다. 산출물은 `build/libs/damo-manager.jar`.
|
||||
- `VERSION` 파일은 번들 생성 시 `build.gradle` 의 version 값으로 자동 기록된다.
|
||||
@@ -0,0 +1,48 @@
|
||||
@echo off
|
||||
rem damo-manager 내부망 빌드 스크립트 — JDK 만 필요 (Gradle 불필요)
|
||||
rem 사용법: build-internal.bat
|
||||
rem 산출물: build-internal\damo-manager.jar
|
||||
setlocal
|
||||
cd /d "%~dp0"
|
||||
|
||||
set OUT=build-internal
|
||||
set VERSION=1.0.0
|
||||
if exist VERSION set /p VERSION=<VERSION
|
||||
|
||||
if exist %OUT% rmdir /s /q %OUT%
|
||||
mkdir %OUT%\stub-classes
|
||||
mkdir %OUT%\main-classes
|
||||
|
||||
rem JDK 9+ 면 --release 8 로 Java 8 타깃 고정, JDK 8 이면 옵션 없이 컴파일
|
||||
set RELEASE_OPT=
|
||||
javac --release 8 -version >nul 2>&1 && set RELEASE_OPT=--release 8
|
||||
|
||||
rem 1. stub 컴파일 (scpdb 가짜 시그니처 — 컴파일 통과 전용, jar 에 포함되지 않음)
|
||||
dir /s /b src\stub\java\*.java > %OUT%\stub-sources.txt
|
||||
javac %RELEASE_OPT% -encoding UTF-8 -d %OUT%\stub-classes @%OUT%\stub-sources.txt
|
||||
if errorlevel 1 goto :fail
|
||||
|
||||
rem 2. main 컴파일 (stub 을 classpath 로 사용 — Gradle 의 compileOnly 와 동일)
|
||||
dir /s /b src\main\java\*.java > %OUT%\main-sources.txt
|
||||
javac %RELEASE_OPT% -encoding UTF-8 -cp %OUT%\stub-classes -d %OUT%\main-classes @%OUT%\main-sources.txt
|
||||
if errorlevel 1 goto :fail
|
||||
|
||||
rem 3. jar 패키징 (main 클래스만 포함)
|
||||
(
|
||||
echo Manifest-Version: 1.0
|
||||
echo Implementation-Title: damo-manager
|
||||
echo Implementation-Version: %VERSION%
|
||||
echo Built-By: damo-manager internal build
|
||||
echo Main-Class: com.eactive.ext.djb.DamoCli
|
||||
) > %OUT%\MANIFEST.MF
|
||||
|
||||
jar cfm %OUT%\damo-manager.jar %OUT%\MANIFEST.MF -C %OUT%\main-classes .
|
||||
if errorlevel 1 goto :fail
|
||||
|
||||
echo.
|
||||
echo Build OK: %OUT%\damo-manager.jar
|
||||
exit /b 0
|
||||
|
||||
:fail
|
||||
echo Build FAILED
|
||||
exit /b 1
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
# damo-manager 내부망 빌드 스크립트 — JDK 만 필요 (Gradle 불필요)
|
||||
# 사용법: sh build-internal.sh
|
||||
# 산출물: build-internal/damo-manager.jar
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
OUT=build-internal
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo 1.0.0)
|
||||
|
||||
rm -rf "$OUT"
|
||||
mkdir -p "$OUT/stub-classes" "$OUT/main-classes"
|
||||
|
||||
# JDK 9+ 면 --release 8 로 Java 8 타깃 고정, JDK 8 이면 옵션 없이 컴파일
|
||||
RELEASE_OPT=
|
||||
if javac --release 8 -version >/dev/null 2>&1; then
|
||||
RELEASE_OPT="--release 8"
|
||||
fi
|
||||
|
||||
# 1. stub 컴파일 (scpdb 가짜 시그니처 — 컴파일 통과 전용, jar 에 포함되지 않음)
|
||||
find src/stub/java -name '*.java' > "$OUT/stub-sources.txt"
|
||||
javac $RELEASE_OPT -encoding UTF-8 -d "$OUT/stub-classes" @"$OUT/stub-sources.txt"
|
||||
|
||||
# 2. main 컴파일 (stub 을 classpath 로 사용 — Gradle 의 compileOnly 와 동일)
|
||||
find src/main/java -name '*.java' > "$OUT/main-sources.txt"
|
||||
javac $RELEASE_OPT -encoding UTF-8 -cp "$OUT/stub-classes" -d "$OUT/main-classes" @"$OUT/main-sources.txt"
|
||||
|
||||
# 3. jar 패키징 (main 클래스만 포함)
|
||||
cat > "$OUT/MANIFEST.MF" <<EOF
|
||||
Manifest-Version: 1.0
|
||||
Implementation-Title: damo-manager
|
||||
Implementation-Version: $VERSION
|
||||
Built-By: damo-manager internal build
|
||||
Main-Class: com.eactive.ext.djb.DamoCli
|
||||
EOF
|
||||
|
||||
jar cfm "$OUT/damo-manager.jar" "$OUT/MANIFEST.MF" -C "$OUT/main-classes" .
|
||||
|
||||
echo ""
|
||||
echo "빌드 완료: $OUT/damo-manager.jar"
|
||||
Reference in New Issue
Block a user