Maven을 이용해서 생성한 프로젝트를 이클립스에서 바로 사용할 수는 없다. 대신, Maven은 maven-eclipse-plugin을 이용해서 Maven 프로젝트를 이클립스에서 import 해서 사용할 수 있도록 지원해 주고 있다. 본 글에서는 Maven 프로젝트를 이클립스에서 사용하기 위한 기본 절차를 설명하고, 생성할 이클립스 프로젝트 정보를 커스터마이징 하는 방법을 살펴보도록 하겠다.
이 글을 최초로 썼던 2008년 시점과 달리, 현재는 이클립스의 메이븐 연동 플러그인(m2e 플러그인)이 잘 동작하기 때문에, 이 글의 방법을 사용해서 메이븐 프로젝트를 이클립스에 임포트 할 일이 없다. m2e 플러그인을 설치하면 이클립스에서 메이븐 프로젝트를 바로 임포트 할 수 있고, 또 메이븐 프로젝트를 생성할 수도 있다. 특히 이클립스 4.3 / 4.4 버전부터는 m2e 플러그인이 기본으로 포함되어 나오기 때문에, 플러그인을 따로 설치할 필요도 없어졌다. - 2014년 7월
최신 이클립스에서 메이븐 프로젝트를 임포트하는 방법은 https://javacan.tistory.com/entry/import-maven-project 글을 참고한다.
Maven 프로젝트에서 이클립스 프로젝트 정보 생성하는 방법
Maven 프로젝트를 이클립스에서 import 할 수 있도록 하기 위해 이클립스 프로젝트 정보를 생성하려면 아래 절차에 따라 필요한 작업을 수행하면 된다.
- 이클립스 워크스페이스에 Maven 관련 클래스패스 변수 추가하기. 이는 아래 명령어를 이용해서 실행하면 된다. (이 과정은 워크스페이스에 대해 한번만 실행해주면 된다.) 이 작업을 수행하면 해당 워크스페이스와 관련해서
mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo
- 프로젝트 루트 디렉터리에서 eclipse:eclipse 플러그인 골을 실행해서 이클립스 프로젝트 정보를 생성한다.
mvn eclipse:eclipse
위 명령어가 성공적으로 실행되면 .project, .classpath, .settings/ 등 이클립스 프로젝트와 관련된 설정 파일이 생성된다.
- 이클립스를 실행한 뒤, File > Import > Existing Projects into Workspace 메뉴를 이용해서 생성된 이클립스 프로젝트를 import 한다.
1번 작업은 이클립스 워크스페이스 별로 한번씩 해 주면 된다. 2번 작업의 경우 POM 파일의 의존 설정 부분이 수정될 때 마다 eclipse:eclipse 플러그인 골을 실행해서 새로운 이클립스 프로젝트 설정 파일을 생성해 주어야 한다. 또한, 이클립스 설정이 변경된 프로젝트에 대해 'Refresh'를 실행해서 프로젝트 정보를 다시 읽어오도록 해 주어야 한다.
의존 라이브러리 소스 다운로드 설정
개발하다보면 디버그 과정에서 외부 라이브러리의 코드를 참조하고 싶을 때가 있다. maven-eclipse-plugin 플러그인은 프로젝트 정보를 생성할 때 관련 소스 코드 정보를 함께 생성해주는 기능을 제공하고 있다. 간단한 방법은 다음과 같이 eclipse:eclipse 플러그인 골을 실행할 때 donwloadSources 시스템 프로퍼티 값을 true로 주는 것이다.
이 경우 Maven은 Maven 중앙 리포지토리에서 소스 코드를 포함하는 jar 파일을 다운로드 받아 로컬 리포지토리에 저장한 뒤, 이클립스 프로젝트 설정 파일에 소스 첨부 정보를 추가한다.
소스 코드를 다운로드 받도록 하는 또 다른 방법은 pom.xml 파일에서 maven-eclipse-plugin 플러그인 설정 정보를 직접 명시해주는 것이다. 아래는 pom.xml 파일 설정 예를 보여주고 있다.
...
<dependencies>...</dependencies>
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
</project>
위 코드와 같이 pom.xml 파일에 maven-eclipse-plugin의 설정 정보에서 downloadSources 설정 값을 true로 주면 eclipse:eclipse 골을 실행할 때 마다 소스 코드 다운로드를 시도하게 된다.
생성되는 프로젝트의 캐릭터 셋 설정하기
'mvn eclipse:eclipse' 명령어를 사용해서 이클립스 프로젝트 정보를 생성할 때, 생성되는 프로젝트의 인코딩은 이클립스에서 기본값으로 설정한 캐릭터 인코딩으로 설정된다. 그런데, 현재 이클립스의 기본 인코딩은 MS949인데, 새로 진행되는 프로젝트의 인코딩이 UTF-8 이라면 어떻게 해야 할까? 이미 다른 프로젝트들이 MS949 인코딩을 이용해서 개발되었기 때문에 이클립스의 기본 인코딩을 UTF-8로 변경할 수는 없을 것이다.
이렇게 프로젝트 별로 인코딩을 지정해주어야 하는 경우에는 pom.xml 파일에서 다음과 같이 maven-eclipse-plugin 플러그인의 <additionalConfig> 설정 정보를 추가해주면 된다.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.settings/org.eclipse.core.resources.prefs
</name>
<content>
<![CDATA[eclipse.preferences.version=1
encoding/<project>=UTF-8
]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
<addionalConfig>/<file>을 설정하면 이클립스 프로젝트 생성시 추가적으로 <name>에 설정한 파일을 생성해준다. 위 코드의 경우 이클립스에서 인코딩 설정 정보를 저장할 때 사용되는 파일을 생성해 주도록 하였다. 생성되는 설정 파일(org.eclipse.core.resources.prefs)에서 encoding/<project> 설정 값을 UTF-8로 줌으로써, 이클립스에서 생성된 프로젝트의 인코딩을 UTF-8로 지정해 줄 수 있게 된다.
관련링크:
- Maven Eclipse Plugin 사이트: http://maven.apache.org/plugins/maven-eclipse-plugin/