본문 바로가기

개발노트/JAVA&JSP

[IntelliJ] 이클립스 프로젝트 인텔리J 로 가져올 때의 라이브러리 문제

이클립스로만 개발해오던 자바 개발을 어떻게든 인텔리J로 개발해보고 싶어서 각종 커뮤니티의 "이클립스 프로젝트와 인텔리J 모듈간의 협업에 문제는 없다"는 말을 철썩같이 믿고 인텔리J를 시작했다.


인텔리J 가 너무 써보고 싶었던 것이 가장 큰 이유.


우선 이클립스와 인텔리J에서 사용하는 기본 용어 차이 먼저...


Eclipse

IntelliJ IDEA

 Workspace

 Project 

 Project

 Module 

 



프로젝트란 단어가 공통으로 사용되는데 의미가 다르다보니 많이 헷갈릴 수 있다.


우선 협업을 사용하지 않는 상태에서 인텔리J에서 프로젝트를 만들고 그 안에 모듈을 만들고 테스트를 해보면 별 문제없이 잘 돌아간다.

라이브러리 파일도 그냥 필요한 jar 파일을 하나씩 하나씩 추가해나가면서 Spring MVC 구성도 문제없이 잘 된다.


문제는 버전컨트롤시스템을 사용하기 시작할 때인데, 사실 앤트, 메이븐, 그래들 등과 같은 빌드 툴을 사용하면 큰 문제없이 잘 될 것 같다는 생각이 든다. (아직 해보지는 않았으나 당연히 그렇게 예상됨)


회사에서는 이클립스 자체 빌드를 이용하여 개발을 진행하고 있고, 관련 라이브러리 묶음을 또 하나의 프로젝트(이클립스에서의)로서 userLibraries 형식을 사용하고 있기 때문에 그것을 그대로 인텔리J에서는 가져올 수가 없었던 점이 문제의 원인이었다.


최종적으로 SVN 으로 웹 (이클립스) 프로젝트와 라이브러리 (이클립스) 프로젝트를 체크아웃하고, 웹 (이클립스) 프로젝트만 모듈로 Import한 후 해당 모듈의 라이브러리에 (또는 Global Library에) 각종 jar 파일들이 들어있는 직속폴더들을 모두 명시하면 정상적으로 잘 되었다.


적으면서도 어떻게 해야하는지 감이 쉽게 안 올 거라 생각이 되기 때문에 스크린샷 첨부!







이걸 기준으로 앞으로 eclipse 프로젝트를 IntelliJ 로 협업을 하면 될 것 같다.


** 참고로 인텔리J 만의 설정파일들 *.iml , .idea 폴더 내의 파일들의 경우에는 unversioned 로서 VCS(버전 컨트롤 시스템, SVN, GIT 등) 로부터 형상관리받지 않아야 협업을 할 수 있음! ignore 로 설정해도 영향을 미칠 수 있음.(큰 문제는 없겠으나 혼자만 intelliJ를 사용하고 다른 사람들은 모두 이클립스를 사용한다면 ignore 하는 정보도 저장되기 때문에 불필요한 속성이 추가된 것으로 간주되고, 인텔리J를 잘 모르는 사람들은 저 파일에 대해 한참 헤멜 수 있음..?)



** 처음에 이클립스 프로젝트를 checkout 하고 인텔리J 모듈로 import with existing sources 할 때, .classpath 파일을 열겠느냐 물어보는데 No를 선택했었고(크게 다른 점은 없는 듯) *.iml 파일을 형상관리하겠냐고 물어보는데 No 를 선택하였음


** 위 스크린샷 중 첫번째, 두번째의 형태를 갖추면 됨.

반응형