# Reposilite 3 연동 가이드 ## 구성 개요 기존 Nexus(`https://nexus.eactive.synology.me:8090`) 대신 로컬 Reposilite 3(`http://localhost:8080`)를 통해 의존성을 다운로드한다. Reposilite의 `private` 레포지토리에 Nexus `maven-public`을 Mirror로 등록하여 캐싱한다. --- ## 1. Reposilite 3 설정 관리자 패널 → **Repositories** → `private` 저장소 → **Edit** **Mirrored repositories** 항목에 추가: ``` https://nexus.eactive.synology.me:8090/repository/maven-public/ ``` --- ## 2. 변경된 파일 ### `build.gradle` (루트) - `nexusUrl` → `reposiliteUrl` 변수명 변경 - `allprojects.repositories` URL을 Reposilite로 변경 - credentials를 `gradle.properties` 변수로 참조 ```groovy def reposiliteUrl = "http://localhost:8080" allprojects { repositories { maven { url "${reposiliteUrl}/private" allowInsecureProtocol = true credentials { username = reposiliteUser password = reposilitePassword } } } } ``` ### `elink-online-core/build.gradle` - 단독 빌드용 `repositories` 블록의 URL 및 credentials 동일하게 변경 ```groovy // FOR LOCAL repositories { maven { url "${nexusUrl}/private" allowInsecureProtocol = true credentials { username = reposiliteUser password = reposilitePassword } } } ``` ### `gradle.properties` (신규 생성) 인증 정보를 별도 파일로 분리. `.gitignore`에 이미 등록되어 있어 git에 올라가지 않는다. ```properties reposiliteUser=admin reposilitePassword= ``` --- ## 3. 서브모듈별 repositories 현황 | 모듈 | repositories 블록 | 비고 | |------|------------------|------| | `build.gradle` (root) | `allprojects { ... }` | 모든 서브모듈에 상속 | | `elink-online-core` | 별도 정의 | 단독 빌드 대응용 (`// FOR LOCAL`) | | `elink-online-core-jpa` | 없음 | root 상속 | | `elink-online-emsclient` | 없음 | root 상속 | | `elink-online-transformer` | 없음 | root 상속 | | `elink-online-common` | 없음 | root 상속 | | `kjb-errors` | 없음 | root 상속 (기존 `mavenCentral()` 제거) | --- ## 4. 빌드 방법 ```bash # 캐시 삭제 후 Reposilite에서 새로 받기 ./gradlew build --refresh-dependencies # 테스트 스킵 ./gradlew build -x test --refresh-dependencies ``` --- ## 참고 - `publishing` 블록(아티팩트 배포)은 각 서브모듈에서 여전히 Nexus URL을 사용 중 - Reposilite로 배포까지 전환하려면 각 서브모듈의 `nexusUrl` 및 `publishing` 블록 수정 필요