Maven
그전에는 필요한 라이브러리들을 직접 다운받아서 폴더에 넣어 사용했다면
Maven을 이용할 경우 사용할 라이브러리를 리스트에 적어 놓으면 Maven이 필요한 것들을
인터넷어서 얻어다가 제공해주는 기능이다. 장바구니 리스트와 유사하다.
프로젝트 구조에 대해서 보자.
src/main/
Directory | Description |
src/main/java | 자바 소스 코드 |
src/main/resources | 앱에서 사용되는 Properties/ config 파일들 |
src/main/webapp | JSP파일이나 웹 config 파일들 또는 웹 리소스. 예를 들면 사진이나 css나 자바스크립트 등 |
src/test | 유닛 테스트 코드와 properties |
target | 컴파일된 코드를 위한 목표 디렉토리. 메이븐에 의해서 자동적으로 생성된다. |
분리되어 있기 때문에 처음보는 사람도 쉽게 작업이 가능하다.
대부분 메이저 IDE는 Maven을 위한 기능이 내장되어있다
그래서 IDE는 쉽게 Maven 프로젝트를 불러올 수 있다.
그러므로 IDE간 프로젝트 공유가 쉽게 가능하다.
POM file
Project Object Model file : POM file
프로젝트를 위한 Configuration file
기능을 부르기 위한 쇼핑리스트라고 생각하면 된다.
Maven project의 근본에 위치되어있다.
project meta data :
프로젝트 이름, 버전 등 정보가 들어있고 JAR이나 WAR 같은 output file type 이 들어있다.
dependencies :
Spring, Hibernate 등과 같은 우리가 의존하는 것들이 있는 프로젝트 리스트
Plug ins :
JUnit 테스트 리포트를 생성하기 위한 것들을 작동하기 위한 추가적 커스텀 작업.
Project Coordinates
프로젝트를 확인할 수 있는 좌표
예를 들면 gps의 위도 경도나 집을 찾기 위한 집주소 등등과 같다. .
Project Coordinates Element
<groupId> :
회사나 그룹의 이름을 나타낸다.
<artifactId> :
프로젝트 이름
<version> :
출시 버전
Dependency Coordinates
주어진 dependency 프로젝트를 추가하기 위해서는
Group ID와 Artifact ID가 필요하다.
Version은 선택사항이다.
Dependency coordinate 찾는 방법
은 두 가지가 있다.
첫 번째는 spring.io 나 hibernate.org 와 같은 프로젝트 페이지에 가서 찾는다..
hibernate 홈페이지에서 다운로드 페이지에 가면 위와 같은 내용이 있다.
두 번째는 http://search.maven.org
에 가서 찾는 방법이 있다..
가서 적절한 것을 검색해서 버전을 선택하면 상세페이지를 볼 수 있다.
이렇게 맞는 것을 찾아서 pom.xml에 붙여넣으면 된다.
다른 옵션으로
여기는 써드 파티 사이트로 좀 더 많은 프로젝트들이 있다.
Archetypes
새로운 Maven 프로젝트을 만들기 위해 사용된다.
Maven 프로젝트를 위한 template files을 포함하고 있다.
한 마디로 자바 프로젝트나 웹 프로젝트를 위한 스타터 파일 모음이다.
archetype = start project
Common Archetype
Archetype Artifact ID 예시를 보자면
maven-archetype-quickstart :
sample Maven project 를 만들기 위한 archetype
pom 파일/ 메인 앱 파일/ JUnit 파일
로 구성되어 있다.
maven-archetype-webapp :
sample Maven Webapp project 를 만들기 위한 archetype
이것도 비슷하게
pom 파일/ 메인 jsp 파일/ web.xml
로 구성되어있다.
나머지는 아래에서 더 볼 수 있다.
http://maven.apache.org/archetypes
만드는 방법은
커맨드라인에서 maven 과 함께 만들 수 있다.
IDE에서 만들 수 있다.
'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글
Spring> Maven> Repository (0) | 2021.05.25 |
---|---|
Spring> Maven> Create Project (0) | 2021.05.25 |
Spring> AOP> Add AOP Logging to Spring MVC App (0) | 2021.05.24 |
Spring> AOP> Around Advice Type (0) | 2021.05.22 |
Spring> AOP> @After Advice (0) | 2021.05.21 |