* 메이븐의 정의
아파치 재단에서 만든 메이븐은 자바 프로젝트 관리 도구이다. 자바에서 주로 사용되긴 하나 C#, Ruby, Scala 등 기타 언어로 작성된 프로젝트를 빌드하고 관리할 수도 있다. 아파치 라이선스로 배포되는 오픈 소스 소프트웨어이다.
* 메이븐의 이점
프로젝트의 규모가 커서 많은 개발자들이 개발에 참여할 경우 개발 환경(개발에 필요한 jar 파일, 또는 그 파일들의 버전) 등이 모두 다르고 그걸 일일히 수동으로 맞추려면 굉장히 까다롭고 힘든 시간 낭비가 될 것이다. maven을 사용하면 그러한 문제를 손쉽게 해결할 수 있다. 필요한 라이브러리들을 pom.xml에 정의해놓으면 알아서 네트워크를 통해 자동으로 다운 및 관리해준다.
* 자바에서의 메이븐 사용
- project home: pom.xml 및 모든 하위 디렉터리를 포함한다.
- src/main/java: 프로젝트에 제공 가능한 java 소스 코드가 들어간다.
- src/main/resources: 프로젝트에 대한 결과물 리소스 (예: 속성 파일)이 들어간다.
- src/test/java: 프로젝트에 대한 테스트 자바 소스 코드 (예: JUnit, TestNG 테스트 케이스)를 포함한다.
- src/test/java: 테스트에 필요한 리소스가 포함되어 있다.
pom.xml 예
<project>
<!-- model version is always 4.0.0 for Maven 2.x POMs -->
<modelVersion>4.0.0</modelVersion>
<!-- project coordinates, i.e. a group of values which
uniquely identify this project -->
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<!-- library dependencies -->
<dependencies>
<dependency>
<!-- coordinates of the required library -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- this dependency is only used for running and compiling tests -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
'Web' 카테고리의 다른 글
MVC vs MVVM (0) | 2021.05.12 |
---|---|
REST(Representatilnal State Transfer) API (0) | 2021.05.04 |
IoC(Inversion of Control)/DI (0) | 2021.04.29 |
Spring 개요 (0) | 2021.04.29 |
sendRedirect vs forward (0) | 2021.03.31 |