메이븐

@@라이브러리  컴퓨터에 자주 사용되는 부분(함수)을 프로그램상에 모아놓은 것

 

  • 프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라 많은 라이브러리들을 활용해서 개발을 한다. 이때 라이브러리들의 수가 수십개가 넘는 일이 발생하곤 하는데, 라이브러리들이 많아지면 관리가 힘들어지게 된다. 이때 필요한게 메이븐이다.
  • 메이븐은 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다.
  • 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다운 받아 준다.
  • 따라서 메이븐을 사용하면 jar 파일을 공유하고 카톡으로 보내는 등의 쓸모없는 짓을 할 필요 없이 pom.xml에 필요한 것을 명시해 놓으면 라이브러리를 아주 쉽게 관리할 수 있다.
  • 메이븐은 프로젝트의 전체적인 라이프 사이클을 관리하는 도구이며 최근에는 메이븐과 같은 라이브러리 관리 프로그램인 Gradle이 많이 사용되고 있다.
  • 의존성 관리를 하면서 빼놓을 수 없는 것이 관련 라이브러리를 메이븐에서 어느 범위까지 적용해서 사용할 것인지 정의하는 부분이다.
  1. Compile
    • 기본값, 컴파일 범위는 모든 단계.
    • 즉, 컴파일, 테스트, 실행, 배포 전체에 클래스 패스로 사용되며 현재 프로젝트와 연관된 다른 프로젝트에도 영향을 준다.
  2. Provided
    • Compile 범위와 상당히 유사하지만 컴파일 시점에만 포함되고 배포할 때는 포함되지 않는다.
    • 대표적으로 Servlet API, J2EE 등과같이 배포 대상 서버에는 이미 존재하지만 컴파일시에는 참조가 필요한 경우 사용한다.
  3. Runtime
    • 컴파일에서는 사용하지 않고 오직 실행과 테스트에만 사용하는 범위.
    • 즉, 컴파일시에는 클래스패스에 잡히지 않는다.
  4. Test
    • 오직 테스트하는 시점에서만 적용
  5. System
    • 외부에서 찾는다. 이 범위를 사용하기 위해서는 JAR파일의 위치를 명시해야 한다.

의존성 관리 도구

  • 종류 : pip, npm, yarn, gem, maven, gradle

https://jerryjerryjerry.tistory.com/63
https://cornswrold.tistory.com/58

+ Recent posts