달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2018. 7. 8. 11:27

MAVEN 기초 JAVA2018. 7. 8. 11:27

사내에서는 인터넷 차단이 되어있기 때문에 메이븐이나 그래들 같은 건 사용할 수 없다. 

다만, 책 등을 보면서 혼자 뭘 해보려하면 다들 기본으로 깔고 들어가기 때문에 기초정도는 알아둘 필요가 있을 것 같다.



메이븐 프로젝트 시작해보기


메이븐 프로젝트를 생성하는 과정은 다음과 같다

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>

위와 같은 코드만 pom.xml에 추가하면된다.(이클립스에서는 pom.xml을 더블클릭하여 오픈하고, 하단 탭에서 pom.xml 선택)  
그러면 사용자 폴더(나의 경우는 C:\Users\user\.m2\repository)를 로컬 레파지토리로 하여 해당 라이브러리를 다운받고 프로젝트에 추가한다.
C:\Users\user\.m2\repository에 가보면 <groupId>\<artifactId>\<version>으로 된 폴더가 생성되어 있고 그 안에 라이브러 관련 파일이 있는 것을 확인할 수 있다. 
필요한 라이브러리는 <dependencies></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
:
Posted by SK