반응형


메이븐 프로젝트(Maven Project) 생성하기


안녕하세요? Ready 입니다.

요즘 웹 개발에 관심이 생겨 프론트엔드와 백엔드 개발 공부를 하고 있습니다.

공부함에 있어 가장 좋은 방법은 개인적으로 프로젝트를 개발해보는 것이라고 생각하는데요!

그래서 프론트엔드와 백엔드의 기초를 잘 활용할 수 있는 TODO-LIST를 제공해주는 웹 사이트를 제작해보려고 합니다.


첫번째 단계는 아무래도 프로젝트 생성이겠죠?

기획 이후 개발 단계에서의 첫 단추는 아무래도 개발 환경 설정이라고 생각이 듭니다.

저는 TODO-LIST 사이트를 제작함에 있어 IDE로는 Eclipse를 사용하고, 프로젝트 환경은 Maven Project를 사용하려 합니다.


그렇다면 Maven Project에 대해 한 번 알아보겠습니다.


Maven - 디렉토리 구조


Maven으로 생성된 프로젝트의 경우 자바 소스는 src/main/java 폴더에 생성됩니다.
웹 어플리케이션과 관련된 html, css등은 src/main/webapp 폴더에서 작성해야 합니다.
그런데, 생성된 프로젝트를 보면 src/main/java 폴더가 보이지 않습니다.
필요한 폴더는 별도로 만들어줄 필요가 있습니다.

project+---src +----- main +------ java : 자바 패키지폴더와 소스 코드가 위치합니다.
|        |            |
|        |            +------ resources : *.properties, *.xml 등 설정파일들이 위치합니다.
|        |            |
|        |            +----- webapp : WEB-INF와 웹 관련 리소스들이 위치합니다.
|        |
|        +----- test +----- java : 테스트와 관련된 자바 패키지와 소스코드가 위치합니다.
|                        |
|                        +----- resources : 테스트와 관련된 설정파일들이 위치합니다.
|
+------- target : 컴파일, 패키징된 결과물이 위치합니다.
|
+------- pom.xml : Maven설정파일



Maven - JDK 설정


Maven으로 프로젝트를 생성하면 기본적으로 JDK 1.5를 사용하게 됩니다.

JDK8을 사용하도록 하려면 Maven설정 파일인 pom.xml 파일을 수정해야 합니다.

pom.xml 파일을 더블클릭하고 다음 코드를 추가해줍니다.

단, finalName의 경우 각자의 프로젝트에 따라 이름이 달라집니다.



코드를 추가 하셨다면 다음으로 이클립스 상단 메뉴 바의 프로젝트 프로퍼티를 선택한 후 Maven메뉴 아래의 Java EE Integration을 선택합니다.
보이는 것처럼 Enable Project Specific Settings 앞의 체크박스를 선택합니다.
그리고 아래의 Apply and Close버튼을 클릭합니다.
그리고, 다시 프로퍼티의 자바 컴파일러 버전을 확인하도록 하겠습니다.
JDK 1.8이 사용되는 것을 알 수 있습니다.
Maven의 설정을 바꾸면, 이클립스 프로젝트 설정이 연동되게 된 것입니다.



Maven - Servlet 라이브러리 지정


webapp폴더 아래의 index.jsp를 열어보면 HttpServlet을 찾을 수 없다는 오류 메시지가 보입니다.

Dynamic Web Application을 만들 때는 WAS Runtime설정을 하면서 Tomcat을 지정했었습니다.
WAS Runtime이 지정되면 Tomcat에 있는 라이브러리를 이클립스에서 사용할 수 있게 됩니다.
이 경우 Tomcat 안에 있는 서블릿 라이브러리가 사용되면서 문제가 없게 됩니다.
실행시에도 WAS 위에서 실행되기 때문에 WAS의 서블릿 라이브러리를 사용하게 됩니다.
Maven프로젝트로 생성했을 경우에는 WAS 런타임이 지정을 안 했기 때문에 서블릿 라이브러리를 찾을 수 없습니다.
이를 해결하기 위해 pom.xml의 dependencies 엘리먼트 아래에 다음을 추가합니다.



scope는 다음과 같은 4가지가 있습니다.

  • compile : 컴파일 할 때 필요. 테스트 및 런타임에도 클래스 패스에 포함됩니다. scope 을 설정하지 않는 경우 기본값입니다.
  • runtime : 런타임에 필요. JDBC 드라이버 등이 예가 됩니다. 컴파일 시에는 필요하지 않지만, 실행 시에 필요한 경우입니다.
  • provided : 컴파일 시에 필요하지만, 실제 런타임 때에는 컨테이너 같은 것에서 제공되는 모듈. servlet, jsp api 등이 이에 해당. 배포 시 제외됩니다. 
  • test : 테스트 코드를 컴파일 할 때 필요. 테스트 시 클래스 패스에 포함되며, 배포 시 제외됩니다.

위의 내용을 추가하고 index.jsp를 가보면 오류가 발생하지 않는 것을 알 수 있습니다.


이제 어느정도 Maven Project 개발을 위한 설정은 된 것 같네요!

추후 추가적으로 사용하게 될 라이브러리나 설정들은 그때 그때 포스팅에서 설정하도록 하겠습니다!


공감() 및 댓글은 Ready's tory에 큰 힘!이 됩니다

다음 번에 더더욱 유익한 컨텐츠로 찾아 뵐게요!

* 로그인 없이도 가능하답니다!


내가 주고 싶은 것이 아닌, 당신이 받고 싶은 것을 주겠습니다.


반응형
반응형