홈 › 실무 확장 › 21 / 22

빌드 도구와 폐쇄망 의존성 반입

Maven 좌표·범위·충돌, 로컬 저장소 반입, 사내 미러, 재현 가능한 빌드
섹션 7진행 0 / 22

4. 응용 변형 예제

4.1 mvn dependency:go-offline 로 반입 대상 모으기

인터넷이 되는 개발 PC에서 아래 명령으로 이번 프로젝트가 필요로 하는 의존성·플러그인을 전부 로컬 저장소에 받아 둡니다.

text
mvn dependency:go-offline
tar czf m2-repo.tar.gz -C ~ .m2/repository

이 tar 파일을 폐쇄망 빌드 서버로 옮기고 /opt/m2repo 에 풀면, settings-offline.xml 의 <localRepository> 경로와 맞아떨어집니다.

4.2 settings-offline.xml 적용

빌드 서버에서 프로젝트 기본 설정 대신 이 파일을 명시적으로 지정합니다.

text
mvn -s settings-offline.xml -o -B -q -DskipTests package

-s 로 지정한 settings.xml 은 사용자 홈의 기본 설정보다 우선합니다. 팀 전체가 같은 반입 경로를 쓰도록 이 파일을 저장소에 커밋해 공유합니다.

4.3 CVE 점검을 빌드 파이프라인에 넣기

반입 승인 전에 mvn dependency:tree 출력과 알려진 취약점 목록을 대조하는 방식으로 심사를 자동화할 수 있습니다. 사내 정책에 따라 OWASP Dependency-Check 같은 플러그인을 오프라인 데이터베이스와 함께 반입해 씁니다.

text
mvn org.owasp:dependency-check-maven:check -o

오프라인 환경에서는 취약점 데이터베이스(NVD)도 주기적으로 갱신해 반입해야 최신 취약점을 잡을 수 있습니다. 데이터베이스가 오래되면 점검 자체가 무의미해집니다.