사내에서는 인터넷 차단이 되어있기 때문에 메이븐이나 그래들 같은 건 사용할 수 없다.
다만, 책 등을 보면서 혼자 뭘 해보려하면 다들 기본으로 깔고 들어가기 때문에 기초정도는 알아둘 필요가 있을 것 같다.
메이븐 프로젝트 시작해보기
메이븐 프로젝트를 생성하는 과정은 다음과 같다
1. 이클립스에서 신규 프로젝트를 만들때 Maven Project를 선택한다
2. 처음 설정 창에서 Create a simple project에 체크해주고 Next 클릭
3. 다음 설정 창에서 Group Id에 com.test , Artifact Id에 testPjt로 적고 Finish 클릭
기본적인 구조는 아래와 같다.
PROJECT/
src/main/java <- 일반 프로젝트의 src에 해당하는 곳이다(프로덕션 코드)
src/main/resources <- 프로덕션 코드에서 사용할 자원들이 위치한다
src/test/java <- 테스트 코드
src/test/resources <- 테스트 코드의 자원
src/
main/
webapp/ <- 웹 프로젝트에서 JSP, JS 등의 웹 애플리케이션 컨텐츠가 위치하는 곳에 해당한다 (WEB-INF 등)
target/ <- 메이븐 빌드 시, 빌드 된 jar 파일 등이 생성된다
pom.xml <- 메이븐의 설정파일
위 구조에서 제일 중요한 것은 pom.xml이다. 여기서 필요한 의존성을 설정할 수 있다.
예를 들어 JUnit을 추가로 사용한다고 하면,
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
https://search.maven.org에 접속하여 원하는 라이브러리 검색후 클릭해보면 dependency information이라는 부분에 무슨 내용을 넣어야하는지 친절하게 나와있다.
그런데 JUnit을 추가시켜보면 이클립스 기준으로 Maven Dependencies에 JUnit의 jar뿐 아니라 hamcrest-core라는 녀석도 추가되어 있는 것을 볼 수 있다.
이 jar는 JUnit을 사용하기 위해서 필요한 라이브러리로 Maven에서 JUnit을 추가할 때 자동으로 추가한 녀석이다.
이클립스에서 pom.xml을 열어보면, Dependency Hierarchy탭에 각 라이브러리간의 상관관계를 한눈에 확인 할 수 있다.
또 로컬 레파지토리로 이동하여 해당하는 라이브러리 폴더를 뒤져보면 <library-name>.pom 파일이 있다.
이 파일을 메모장으로 열어서 <dependencies></dependencies> 태그 내용을 살펴보면 해당 라이브러리가 종속되어 있는 것이 무엇인지 보인다.
(이를 transitive dependencies 의존성 전이 라고 한다)
만약 프로젝트에서 JUnit의 다른 특정한 버전이 필요하다고 한다면 어떻게 될까?
그 때는 <version></version> 태그 안에 필요한 버전만 적어 넣으면 maven에서 알아서 다운로드하여 프로젝트에 주입시킨다.
'JAVA' 카테고리의 다른 글
Singleton Pattern(싱글톤 패턴) (0) | 2019.02.13 |
---|---|
람다식 기본 (0) | 2019.02.10 |