ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] Maven, pom.xml
    Spring 2021. 4. 13. 22:27

    1. Maven은 무엇인가?

    자바 프로젝트를 관리하는 툴로, 미리 작성된 xml 파일을 이용하여 라이브러리를 자동으로 다운로드하거나 프로젝트를 빌드해준다. 즉, 자바 소스를 컴파일하고 패키지해서 deploy까지 자동화 해준다는 것이다.

     

    Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다.

     

    1-1. 라이브러리란?

    활용 가능한 도구들의 집합, 즉 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것입니다.

     

    1-2. 빌드란?

    소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물

    작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다.

     

    1-3. 빌드 도구

    빌드 도구란 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램.
    빠른기간동안 계속해서 늘어나는 라이브러리 추가, 프로젝트를 진행하며 라이브러리의 버전 동기화의 어려움을 해소하고자 등장.
    초기의 java 빌드도구로 Ant를 많이 사용하였으나 최근 많은 빌드도구들이 생겨나 Maven이 많이 쓰였고, 현재는 Gradle이 많이 쓰인다.

     

     

    2. pom.xml의 정의

    pom.xml은 간단히 말하면 Maven의 빌드 정보를 담고 있는 파일로,

    POM(Project Object Model)을 설정하는 부분으로 프로젝트 내 빌드 옵션을 설정하는 부분이다. 

    다른 프로젝트에도 복사-붙여넣기하면 되기 때문에 범용성이 좋고, 협업할때에 버전을 통일하기에 편리하다.

     

    pom.xml에서 사용하는 태그

    • <project> : Maven의 XML 네임스페이스를 지정
    • <modelVersion> : Maven의 model Version
    • <groupId> : 그룹 ID태그 
    • <artifactId> : 아티팩트ID 태그 
    • <version> : 버전명 태그
    • <packaging> 패키징 형식을 지정하는 태그
    • <name> : 프로젝트의 이름
    • <url> : Maven의 url
    • <properties> : 프로젝트 관련 속성
    • <parent> : pom.xml의 상속에 관련된 태그
    • <dependencies> : 프로젝트가 의존하는 라이브러리들의 정보

    <dependency> 프로젝트의 라이브러리를 정의하는 태그

    • <groupId> : 라이브러리의 그룹 아이디
    • <artifactId> : 라이브러리의 아티팩트 아이디
    • <version> : 라이브러리의 버전
    • <scope> : 라이브러리가 프로젝트 내에서 사용되는 범위
Designed by Tistory.