Maven으로 스프링 프로젝트 폴더 만들기

스프링을 시작하기 위해서는 스프링 부트, STS 플러그인 등 여러 가지 방법이 있습니다.


저는 환경설정 하는 부분을 밑바닥부터 만들어가는 방식으로 진행하려고 합니다.

스프링을 하면서 느낀 것은 환경 설정이 정말 중요한 작업이라는 생각이 들었기 때문입니다.


스프링 프로젝트를 생성하기 위해서는 메이븐 ( Maven )을 사용합니다.

메이븐 ( Maven )war 또는 jar 파일을 빌드( build ), 라이브러리 의존성( dependency ) 해결, 컴파일( compile ) , 배포 ( deploy ) 등을 해결해주는 도구입니다.

이어지는 글에서는 라이브러리를 다운 받기 위한 용도로만 사용합니다.




1)

Dynamic Web Project를 생성합니다.


new의 Dynamic Web Project 클릭하여 프로젝트 폴더 이름 작성하고 next

-> 메이븐의 프로젝트 폴더 이름이 /src/main/java이므로 기존 src 폴더를 제거하고,

   /src/main/java라는 이름으로 소스 폴더를 추가하고 next




2)
메이븐의 Web Contents 폴더 이름은 webapp이므로 Content directory 이름을 webapp으로 작성하고,
web.xml을 생성하겠다는 버튼을 클릭한 후 finish



3)
생성된 프로젝트 폴더를 우클릭하여 Configure  ->  Convert to Maven Project를 클릭


-> Group Id는 프로젝트를 만드는 그룹, 조직, 회사 등을 나타내는 유일한 이름을 의미합니다.

   저는 com.victolee라는 이름으로 작성했습니다.

-> finish를 클릭



그러면 프로젝트 폴더의 모양이 바뀌면서 위와 같이 여러 폴더와 파일들이 생성됩니다.

기본적으로 톰캣이 깔려있는 것을 확인할 수 있으며, 그렇기 때문에 web.xml 파일도 존재합니다.



4)

pom.xml 파일은 convert to maven project를 클릭했을 때(3번 단계), 나타나는 현재 보고 계시는 창입니다.



이 파일을 통해 maven 설정을 할 수 있는데, 하단에 보시면 여러 개의 탭 중에 pom.xml을 클릭하시면 xml 태그로 설정을 할 수 있습니다.

<!-- 변수 설정 방법 -->

<properties>

           <org.springframework-version> 4.2.1.RELEASE </org.springframework-version>

</properties>


<!-- 라이브러리를 추가 -->

<dependencies>

           <!-- Spring core -->

           <dependency>

                     <groupId>org.springframework</groupId>

                     <artifactId>spring-context</artifactId>

                     <version>${org.springframework-version}</version>

           </dependency>


           <!-- Spring Web ( Servlet / Anotation ) -->

           <dependency>

                     <groupId>org.springframework</groupId>

                     <artifactId>spring-web</artifactId>

                     <version>${org.springframework-version}</version>

           </dependency>

           <!-- Spring MVC -->

           <dependency>

                     <groupId>org.springframework</groupId>

                     <artifactId>spring-webmvc</artifactId>

                     <version>${org.springframework-version}</version>

           </dependency>

</dependencies>

위의 코드는 라이브러리를 추가해주는 코드로서, 기존에 작성되어 있던 <build> 태그 위에 작성하시면 maven이 알아서 라이브러리를 추가해줍니다.

Tip) IDE가 이클립스라면 복붙 하신 다음에 ctrl + shift + f 를 누르시면 자동 줄맞춤이 됩니다.



위의 3개의 라이브러리는 스프링 웹 개발할 때 기본적으로 사용하는 라이브러리입니다.


라이브러리가 어떤 것들이 있는지 검색을 하고 싶다면 MVNRepository 사이트 ( 링크 )에 가셔서 라이브러리를 검색할 수 있습니다.

사전에 라이브러리 명을 알고 검색을 하셔서 라이브러리를 클릭하시면 Vesrion이 쭉 나오는데 RELEASE 버튼을 클릭하면 <dependency> 코드를 얻을 수 있습니다.




이 코드를 pom.xml에 추가하면 maven이 알아서 라이브러리를 등록해줍니다.





Maven이 라이브러리를 제대로 받아오지 못할 경우

maven은 중앙( central )에서 라이브러리를 받아오는데, 잘못 받아오는 경우가 있어서 제대로 동작하지 않을 때가 있습니다.

그럴 때는 아래의 경로에 가셔서 repository 폴더를 지우고 중앙으로부터 다시 받는 것이 좋습니다.


사용자경로\.m2\repository


그리고 이클립스에서 프로젝트를 우클릭

-> maven

-> Update project 를 클릭하여 라이브러리를 다시 가져올 수 있도록 refresh를 할 수 있습니다.





이제 메이븐으로 스프링 프로젝트를 만들었으니 다음 글에서는 스프링 MVC를 사용하여 Hello world를 찍어보도록 하겠습니다.


댓글 펼치기 👇
  1. 지나가는 행인 2019.07.10 09:07

    안녕하세요.

    spring 구축하다가 막혀서 여쭤보려고하는데,

    java Eclipse에서 Dynamic web project 하고 설명해주신대로 했는데

    tomcat이 안보이네요.. 혹시 server에 tomcat을 설정을 미리해놓으셔서 그런건지.. 맞나요?

    • Favicon of https://victorydntmd.tistory.com victolee 우르르응 2019.07.13 12:41 신고

      안녕하세요.
      그러게요... 다시 해보니 안되네요.

      프로젝트 폴더를 우클릭 -> Properties -> Java Build Path 항목 클릭 -> Libraries -> Add Library ...
      위의 과정을 해줘야 Library에 등록됩니다.

      말씀해주셔서 감사합니다.

  2. 스프링 2020.02.21 18:50

    글을 보면서 따라해보려다가 질문드려요! 혹시 메이븐을 미리 설치해놓고 따라해야 하나요?

    -> 메이븐의 프로젝트 폴더 이름이 /src/main/java이므로 기존 src 폴더를 제거하고,
    /src/main/java라는 이름으로 소스 폴더를 추가하고 next

    아니면 그냥 Dynamic Web Project 만들 때 next로 이동한 화면에서 /src/main/java로 만들면 되는건가요?? 저 위치에 메이븐을 다운로드 받아놔야 해서 질문드립니다

  3. Favicon of https://victorydntmd.tistory.com victolee 우르르응 2020.02.21 19:07 신고

    maven을 미리 다운받을 필요는 없습니다.
    next로 이동한 화면에서 /src/main/java를 만들면 됩니다.