스프링 프레임워크에서 pom.xml에 입력한 <dependency> 코드로 메이븐 라이브러리를 받아오게 될 경우
최초 1회는 인터넷에서 받아오게 된다.
이후 C:\Users\user\.m2 와 같은 내 로컬 경로에 저장이되는데
repository 폴더에 라이브러리들이 저장되고, settings.xml 파일 수정으로 기본 경로를 수정할 수 있다.
이상태에서 아무것도 손대지 않아도 인터넷이 되는 상황이거나 개인 프로젝트라면 무관하겠지만,
대부분의 프로젝트의 경우 그 사이트의 내부망을 사용하거나,
보안상 외부에서 인터넷을 통한 서버 접근을 막아놓는 것이 일반적이다.
인터넷을 끊고 실행해보면 라이브러리를 찾지 못해서 에러가 발생.
그래서 인터넷이 안되는 오프라인의 경우에도 메이븐으로 받아온 라이브러리를 사용해야 하는데,
몇 가지의 방법을 찾아보았다.
첫번째. servlet-context.xml 및 root-context.xml 수정
오프라인 체크 후 servlet-context.xml 파일과 root-context.xml 파일을 수정해준다.
이렇게 했을때의 단점은 이클립스에서 classpath:/문자열을 인식을 못해서인지,
이런 오류가 나게되는데, 저런 오류가 나더라도 실제로 실행에는 문제가 없다.
프로젝트에 빨간색 x표가 있는게 거슬려서 해당 오류를 Markers 우클릭 - delete 해줘도 되지만,
이클립스를 실행할 때마다, 혹은 프로젝트 업데이트 할때마다 해당 오류가 나게되어 상당히 거슬리고, 신경쓰인다.
두번째. 프로젝트 우클릭 - Java Build Path - Add Library - User Library 에 로컬 경로 .m2에 있는 라이브러리를 넣어준다. 이 방법의 경우에는 라이브러리가 충돌, 중복될 수 있는 부분이기 때문에 비추천. 애초에 스프링의 장점 중 하나인 메이븐을 배제하는 방식이다.
세번째. 로컬 경로를 명시. Window-Preferences-Maven-User Settings에 로컬에 있는 라이브러리 경로를 명시해준다.
나는 Works이하 폴더를 만들고 명시해줬다.
이렇게 하면 첫번째방식에서 classpath문자열이 아닌 원래대로 https://~~~으로 쓰더라도 문제가 없다.
인터넷을 끊고 실행해보면 정상작동.
세번째 방법이 제일 깔끔하지만 저 방법을 알기 위해 무수히 많은 삽질을 했다...
첫번째, 두번째 방법도 작동에는 문제가 없지만 그냥 이런 방법이 있구나~ 하는 정도만 정리.
'SpringFramework' 카테고리의 다른 글
XSS(Cross Site Scripting) 크로스사이트스크립팅 방지처리 (0) | 2020.02.17 |
---|