티스토리 뷰
Gradle로 스프링MVC를 최대한 쉽게 구현해 보았습니다.
환경은
1. Gradle version : 2.2.1
2. JDK : 1.8.0.25
3. Spring version : 4.1.4
4. IDE : STS(Spring Tool Suite) 3.6.3
-> 주의할 점은 STS에 Gradle 플러그인을 까셔야 합니다.
5. 윈도 8.1 64bit
모 이정도?
그럼 시작해봅시다.
사실 이번 블로깅의 목적은 제가 Gradle로 구축해 놓은 최초 MVC 모델을 나중에 다시 찾아보려는데 있습니다. 이제 막 Spring MVC를 구축하려는 저에겐 이마저도 굉장히 어렵게 느껴지더군요... 더군다나 Gradle 자료는 찾기도 쉽지 않더라는 ㅜ.ㅜ 그런데 분명 다른 분들도 저처럼 처음 구축을 어려워 하는 분이 있을 것이라 믿습니다.
그래서 만들었습니다. 진짜 스샷 왕창 찍어서 따라만 하면 구축되도록! 초보자 분들도 충분히 하실 수 있을 겁니다.
file-new-project ㄱㄱ
Gradle Project 생성합니다. 이건 아마 플러그인 깔아야 될겁니다.
적당한 이름 지어주시고 다음 보시면 Sample Project가 있습니다.
Gradle 프로젝트 생성시 몇가지 예제가 셋팅되어있는데 이게 바로 그겁니다.
어차피 다 지우고 저희가 만들거니까 Java Quickstart ㄱㄱ
생성 후 폴더 구조가 다음과 같습니다. 안에 클래스도 있는데 이게 그 Java Quickstart 예제입니다.
org저거 다 필요없습니다. 저희 입맛에 맞게 프로젝트 구성 할겁니다.
다 지우십쇼
저흰 웹 프로젝트니 관련 폴더를 추가합니다.
main에 webapp이 웹디렉토리 역할을 합니다.
안에 WEB-INF폴더도 넣어주고
뷰를 넣어줄 views도 만듭시다.
이제 spring mvc에 필요한 패키지와 클래스부터 만듭시다.
요렇게 일단 구성해보았습니다.
생성 후 폴더 구조
이제 클래스 만들죠
컨트롤러 하나만들고
설정클래스 하나 만들고
초기화 클래스 하나 만들었습니다.
index.jsp는 하나씩 만들어서 위처럼 넣어주세요
어차피 내부 소스는 지금 필요없으니 위 파일은 다 비어있습니다.
여기까지가 파일 셋팅 끝
자 이제 저희가 왜 Gradle을 쓰는지 보여드리겠습니다.
build path확인해보죠
보시면 기본 라이브러리만 있습니다.
스프링 쓰시려면 라이브러리 추가해주셔야겠죠?
그런데 수동으로 다운받아서 넣기 너무 귀찮고 의존관계 설정도 머리아픕니다.
그래서 자동 빌드 툴인 Gradle을 씁시다.
빌드 스크립트만 처음에 잘 짜놓으면 라이브러리 구축 굉장히 쉬워집니다.
프로젝트에 있는 build.gradle이 바로 빌드 스크립트입니다.
이건 프로젝트 생성시 자동으로 생성된 스크립트인데요.
저희 프로젝트에 맞게 수정해봅시다.
일단 자바 컴파일 하려면 java가 필요합니다.
그담 이클립스에 필요한 파일들을 셋팅하기 위해 eclipse
웹 프로젝트에 필요한 war
이렇게 플러그인을 추가해주면 저희가 복잡한 코드를 직접 스크립트에 쓸 필요없이
자동으로 테스크가 스크립트에 추가된답니다.
(이 플러그인 설정으로 오류가 나는 경우가 있다는데요. 찾아보니 war프로젝트에는 eclipse보다 eclipse-wtp 플러그인이 맞는 것 같네요.)
이건 그래들 프로젝트의 속성을 지정하는거에요.
어떤 속성들이 있는지 아시려면 api 문서를 참조하...
너무 많아요. 여기서 설명하기는 ㅋㅋ
이건 eclipse 플러그인에 속하는 문법인데요.
간단히 내부 속성을 지정하는 것이라 보세요.
맨 위에 project.nature 부분은 이클립스 상에서 프로젝트가 gradle로 빌드한다는걸 알려줘요.
이게 없으면 프로젝트에서 오른쪽 버튼 눌렀을 때
run as-gradle build가 없어진답니다.
facet 쪽은 서블렛하고 자바 버전을 명시해줍니다.
자바 플러그인을 넣으면 jar문법을 사용할 수 있습니다.
프로젝트가 생성할 jar파일에 대해서 셋팅이 가능합니다.
그 내용은 주석을 참고! 적느라 힘들었...
주석참고
일단 주석 참고하시고요.
여기서 잘 보시면 서블렛 api는 providedCompile을 하였는데 그 이유는
나중에 올릴 서버가 서블릿 컨테이너이기 때문에 war파일은 서버의 api를 사용한다고 합니다.
그리고 잘 보시면 스프링 라이브러리도 webmvc만을 선언하였는데
Gradle이 자동으로 이에 해당하는 의존 라이브러리도 모두 다운받아준답니다.
나머진 지금 쓰진 않지만 머 그냥 저냥 ㅋ
주석참고
주석참고
최종 빌드스크립트(1/3)
최종 빌드스크립트(2/3)
최종 빌드스크립트(3/3)
이제 빌드 스크립트도 만들었으니 한번 빌드 해볼까요?
clean과 cleanEclipse로 프로젝트 청소하고
eclipse로 eclipse가 인식하는 프로젝트로 만듭시다.
참고로 war파일 생성하고 싶으시면 build입력하세요
build/libs에 생성된답니다.
빌드성공
자 빌드패스 확인
관련 라이브러리가 전부 추가되었죠? 굳
이제부터 아까 만든 파일 채워보죠.
채웁시다.
컨트롤러 만드시구
설정 클래스도 구성하시구.
참고로 전 xml 안쓰고 전부 자바 기반으로 만들겁니다.
초기화 클래스입니다.
서블릿컨텍스트에 이것저것 양념해서 디스패쳐 서블릿 만듭시다.
자 대망의 실행
sts라서 tc 서버가 있죠.
암거나 상관없지만 전 tc로 일단 ㄱㄱ
들어갈 프로젝트는 방금 저희가 한걸로
잘 돌아가죠?
후우 끝났네요.
사실 스프링MVC 내용도 좀 설명해야 하나 했는데, 목적이 그래들을 이용해서 스프링 mvc 라이브러리 적용하는걸 보여드리는거라 생략하였습니다. 안그래도 스샷이 많아서 스크롤 굉장합니다. 허허.
'Dev Story > Gradle' 카테고리의 다른 글
[Gradle 도전기] 9. Groovy Quickstart (0) | 2015.01.15 |
---|---|
[Maven -> Gradle 변환] pom.xml로 build.script 만들기 (1) | 2015.01.11 |
[Gradle 도전기] 8. Dependency Management Basics (2) | 2015.01.02 |
[Gradle 도전기] 7. Java Quickstart (0) | 2014.12.26 |
[Gradle 도전기] 6. Build Script Basics (0) | 2014.12.25 |