개발중인 스프링 프로젝트를 인터넷이 안되는 폐쇄망으로 옮겨야 하는 일이 발생.
소스코드가 있는 워크스페이스를 통째로 압축해서 옮기면 될 것 같지만 인터넷이 안된다는 사실 하나로 매우 제약이 많음
일단 실행환경을 구축하기 위해 필요한 설치파일들을 받아준다.
파일 준비하기
개발환경 설치파일
- 실행환경에 맞는 JDK 버전 설치파일 다운
- https://www.oracle.com/kr/java/technologies/downloads/
- IDE(이클립스, intelij, 전자정부 프레임워크, STS 등) 설치파일 다운자신의 JDK와 호환되는 IDE인지를 꼭 확인하자https://www.egovframe.go.kr/home/developEnvDownList/developEnvDownList.do?menuNo=107
- https://spring.io/
- 이 게시글에서는 이클립스 베이스인 IDE를 다룰 예정이며
- 필요시 톰캣 설치파일도 다운
- https://tomcat.apache.org/download-90.cgi
소스코드
워크스페이스의 프로젝트 폴더를 그대로 복사한다면
필요없는 파일들이 섞여서 오히려 새 환경의 설정과 꼬일 가능성이 높다.
아래 목록에서 선택된 파일은 필수이며,
.gradle / .settings / build / bin 이름의 파일 및 폴더가 있다면 이는 제거해야한다.
기존환경에서 구동할 때 임시로 생성된 빌드 결과물이므로
새로운 환경에서 충돌이 일어날 수 있으며, 어차피 새로운 환경에서 구동 시 다시 생기는 파일들이다.
나머지 파일들(깃, 도커, pmd 등등) 은 필요에 따라 챙겨도 됨

의존성, 라이브러리
프로젝트 구성에 필요한 의존성과 라이브러리들이 저장되는 경로이다.
인터넷 환경에서는 pom.xml , build.gradle에 적힌 라이브러리들을
메이븐 중앙저장소나 gradle 온라인서버로 요청하는데
폐쇄망에서는 인터넷이 안되므로 직접 해당 라이브러리들을 다운받아서 usb등으로 가지고가야한다.
먼저 현재 구동되고 있는 프로젝트의 의존성을 다운로드하는데
기존 의존성이 깨졌거나 변경되었을 수도 있기 때문에 깔끔하게 다시 다운받는 것을 권장
이때, 반드시 실행중인 이클립스 창을 모두 끄고 진행해야한다.
읽기/쓰기 중인 파일은 압축대상에서 제외되는 경우가 있음
그리고 반드시 일반 윈도우 압축기능 말고 반디집 같은 전문 프로그램을 사용할것.
반디집은 읽기/쓰기중인 파일이 있을 시 경고문구가 뜨는데 일반 윈도우 압축은 안떠서 뒤늦게 안 경험이 있음…
Gradle
cmd를 열어 gradlew.bat 이 있는프로젝트 루트로 이동(프로젝트마다 gradlew가 있음)
gradlew build --refresh-dependencies
기존 gradle 캐시를 무시하고 의존성을 다시 확인. 없거나 변경되었으면 다시 다운로드 한다.
의존성 저장경로 확인 (디폴트는 C:\Users\사용자명\.gradle)

해당 경로로 들어가서 C\Users\사용자명\.gradle\caches\modules-2 를 통째로 압축한다.
그리고 C:\Users\사용자명\.gradle\wrapper 도 다운해준다.
여기는 프로젝트에서 요구하는 버전별 gradle.bin을 모아놓은 곳임
인터넷환경에서 실행시 자동으로 필요한 버전의 gradle을 다운받아서 해당 폴더로 넣어주는데
폐쇄망에서는 가져올 수 없으므로 같이 챙겨가자.
Maven
pc에 설치된 mvn명령을 전역으로 사용하지만 편의를 위해 루트폴더로 이동
cmd에서 다음 명령 실행
mvn clean install -U
기존 빌드 삭제 후 재빌드 및 의존성 버전을 원격저장소에서 확인 후 다시받음
의존성 저장경로 확인(디폴트는 C:\Users\사용자명\.m2\repository)
Window > Preference > Maven > User Settings

새 환경에 세팅하기
- 이클립스 설치
- JDK 세팅에서 설치한 jdk를 add해준다.
- Window > Preference > Java > Installed JREs
- 가져온 의존성 폴더들을 원래 경로 그대로에 붙여넣기한다.C:\Users\사용자명\.gradle\wrapper
- C:\Users\사용자명\.m2\repository
- C\Users\사용자명\.gradle\caches\modules-2
- 기본 gradle 폴더 지정 및 offline 다운로드 설정Gradle User Home 설정(C:\Users\사용자명\.gradle 로 설정)
- Window > Preference > Gradle > Offline Mode 체크!
- 폐쇄망일 경우에 자꾸 의존성을 인터넷으로 요청하려고 하기 때문에 막아둬야함
- 프로젝트 importimport > Existing Maven Project (maven프로젝트일 경우)
- import > Existing Gradle Project (gradle 프로젝트일 경우)
- updateMaven > Update Project (offline 체크)
- Gradle > Refrash Gradle Project
- 프로젝트 우클릭 후
- 서버 설정maven 프로젝트면 서버탭을 열어서 (window > show view > servers )
- 가져온 톰캣에다가 띄워준다 (서버탭 창 우클릭 > add > new server)
- gradle 프로젝트라면 바로 부트 대시보드에 뜰 것이고
참고
만약 import 해 온 프로젝트에 엑박이 뜬다면 의심 해 볼 원인
- 프로젝트 build path의 jdk 버전 - 설치된 jdk 버전의 차이
- 기존 빌드 잔여물이 남아서 프로젝트를 인식 못하는 경우(gradle task 창에서 프로젝트가 활성화가 안됨)
- 필요 의존성이 누락된 경우(이클립스를 켜놓고 의존성을 압축한 경우, 라이브러리 중 수정, 누락이 있던 파일을 재설치하지 않은 경우)
'개발 > ⚙️ 환경설정' 카테고리의 다른 글
| [nvm] nvm으로 nodejs 버전관리하기(설치, 명령어) (1) | 2024.05.14 |
|---|---|
| [IntelliJ]IntelliJ 프로젝트 기초설정, 환경세팅(MongoDB연결, REST API구동) - 관련에러들 (3) | 2023.12.02 |
| [MongoDB] MongoDB 명령어 기초 다지기(mongo명령어 안 될 때) (3) | 2023.12.02 |
| [MongoDB] MongoDB을 사용해보자(설치, 환경변수, 실행) (2) | 2023.12.02 |
| [Git]리액트 프로젝트 생성 후 github 연동 명령어/주의사항(README.md/branch) (3) | 2023.11.20 |