Apache Maven — 요약

Feb 17 2023
Java 개발자인 경우 프로젝트 작업 중 일상적인 활동에는 코드 작성, 코드 컴파일, 코드 테스트, jar 또는 war 파일과 같은 아티팩트 형식으로 패키징한 다음 이를 배포하는 작업이 포함됩니다. 웹 서버에 아티팩트. 수동으로 처리해야 하는 많은 작업이 있으며 분명히 Apache Maven이라는 라이브러리를 사용하여 이러한 작업을 자동화할 수 있습니다. Java 프로젝트 먼저 maven의 기본 사항을 이해하겠습니다. Maven이란 무엇입니까? Maven은 Java 및 Scala와 같은 JVM 언어를 사용하여 개발된 프로젝트를 지원하고 관리하기 위해 개발된 프로젝트 관리 도구입니다.

Java 개발자인 경우 프로젝트 작업 중 일상적인 활동에는 코드 작성, 코드 컴파일, 코드 테스트, jar 또는 war 파일과 같은 아티팩트 형식으로 패키징한 다음 이를 배포하는 작업 이 포함 됩니다 . 웹 서버에 아티팩트.

수동으로 처리해야 하는 많은 작업이 있으며 분명히 Apache Maven 이라는 라이브러리를 사용하여 이러한 작업을 자동화할 수 있습니다.

이 기사에서는 Apache Maven이 무엇이며 이를 효과적으로 사용하여 Java 프로젝트를 빌드하고 관리하는 방법을 이해합니다.

먼저 maven의 기본 사항을 이해합시다.

메이븐이란?

Maven은 Java 및 Scala와 같은 JVM 언어를 사용하여 개발된 프로젝트를 지원하고 관리하기 위해 개발된 프로젝트 관리 도구입니다. 프로젝트 관리 도구의 주요 작업은 다음과 같습니다.

  1. 소스 코드 빌드
  2. 소스 코드 테스트
  3. 항아리, 전쟁 또는 귀에 포장
  4. 자바 문서 생성
  5. 종속성 관리

이제 더 진행하여 머신에 Maven을 설치하는 방법을 살펴보겠습니다.

  1. 브라우저에서 https://maven.apache.org/ 를 엽니다.
  2. 다운로드 섹션으로 이동하여 최신 maven 버전 zip 폴더를 다운로드하고 압축을 풉니다.
  3. 환경 경로 변수 설정 JAVA_HOME 및 MAVEN_HOME 추가
  4. 환경 변수에 maven 경로를 추가하십시오. 예: F:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin

메이븐 저장소:

Maven 리포지토리는 pom.xml이 포함된 패키징된 jar 파일의 디렉터리입니다. Maven은 리포지토리에서 종속성을 검색합니다. Maven 리포지토리에는 세 가지 유형이 있습니다.

  1. 로컬 저장소
  2. 중앙 저장소
  3. 원격 저장소

또한 MAVEN_HOME/conf/settings.xml에 있는 settings.xml 파일에서 로컬 리포지토리의 위치를 ​​변경할 수 있습니다. 예: E:\apache-maven-3.1.1\conf\settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  <!-- localRepository  
   | The path to the local repository maven will use to store artifacts.  
   |  
   | Default: ${user.home}/.m2/repository  
  <localRepository>/path/to/local/repo</localRepository>  
  -->  
</settings>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
   <localRepository>e:/mavenlocalrepository</localRepository>  
</settings>

중앙 저장소에는 이 URL로 볼 수 있는 많은 공통 라이브러리가 포함되어 있습니다.http://search.maven.org/#browse.

Maven 원격 저장소: Maven 원격 저장소는 웹에 있습니다. 일부 라이브러리는 JBoss 라이브러리 등과 같은 중앙 리포지토리에서 누락될 수 있으므로 pom.xml 파일에서 원격 리포지토리를 정의해야 합니다.

메이븐 프로젝트 구조:

이제 Maven 프로젝트 구조를 이해합시다. Maven 프로젝트를 생성하면 다음과 같은 폴더가 표시됩니다.

  1. src — 소스 — 애플리케이션 소스 코드 및 애플리케이션 단위 테스트의 루트입니다.
  2. src/main/java — 애플리케이션의 소스 코드가 포함되어 있으며 애플리케이션에 작성하는 모든 프로덕션 코드는 이 폴더 안에 있습니다.
  3. src/main/resources — 프로젝트에서 사용하는 모든 정적 파일을 저장하는 곳입니다. 예 application.properties , XML 파일, CSV 파일 등
  4. 웹 애플리케이션을 개발하는 경우 모든 html 및 javascript 파일이 이 폴더 아래에 있습니다.
  5. src/test/java — 여기에서 단위 테스트를 작성하고 응용 프로그램에 대한 통합 테스트를 수행합니다.
  6. pom.xml — 프로젝트 종속성의 메타데이터를 포함합니다.
  7. target — 이 폴더에 maven은 컴파일된 모든 Java 클래스 파일을 저장합니다.

POM에는 프로젝트의 메타데이터가 포함되어 있으며 많은 반복 작업을 자동화하는 데 도움이 되는 플러그인을 구성하기 위해 종속성을 관리하는 책임도 있습니다. 기본 pom.xml은 다음과 같습니다.

<project xmlns="http://maven.apache.org/POM/4.0.0"   
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   
http://maven.apache.org/xsd/maven-4.0.0.xsd">  

  <modelVersion>4.0.0</modelVersion>  
  <groupId>com.maven.application</groupId>  
  <artifactId>my-app</artifactId>  
  <version>1</version>  
</project>

  • 모델 버전 — 모델 버전은 다른 maven 버전으로 변경하지 않는 한 항상 4.0.0으로 설정됩니다. 예를 들어 3.0 이상의 상위 버전
  1. 간단한 폼 파일
  2. 슈퍼 폼 파일
  3. 효과적인 치어 파일

Super pom 파일: maven 설치 디렉토리의 lib 경로 아래에서 super pom 파일을 찾을 수 있습니다. 그리고 jar 파일(maven-model-builder) 내에서 org라는 패키지를 찾을 수 있습니다.

효과적인 pom 파일: 효과적인 pom 파일은 단순한 pom 및 super pom 파일의 조합일 뿐입니다. 단지 한 곳에서 pom.xml 파일의 모든 정보를 확인하는 방법일 뿐입니다. 효과적인 pom 파일을 살펴보려면 maven 터미널 유형으로 이동하십시오.

mvn-help: effective-pom

Maven에는 두 가지 유형의 종속성이 있습니다.

  1. 스냅샷 종속성: 스냅샷 종속성은 활발히 개발 중이고 불안정한 프로젝트를 의미합니다.
  2. 릴리스 종속성: 프로젝트가 완료되면 릴리스됩니다.

종속성 범위를 사용하여 maven 종속성의 가시성을 제어할 수 있습니다. 범위에는 5가지 유형이 있습니다.

  1. 컴파일: 이것은 모든 종속성의 기본 범위이며 컴파일로 표시된 종속성은 프로젝트의 클래스 경로 내에서 사용할 수 있습니다.
  2. 제공됨: 범위를 제공한 종속성은 런타임에 jdk 또는 웹 서버에 의해 제공됩니다.
  3. 런타임: 이름에서 알 수 있듯이 런타임으로 표시된 종속성은 런타임에만 사용할 수 있지만 컴파일 타임에는 사용할 수 없습니다.
  4. 테스트: 이러한 종속성은 테스트를 작성하고 실행할 때만 사용할 수 있습니다.
  5. 시스템 범위: 이것은 제공된 범위와 유사하지만 유일한 차이점은 시스템에서 종속성을 찾을 수 있는 위치를 명시적으로 언급했다는 것입니다. 런타임에 이 종속성을 제공하는 JDK 또는 웹 서버 대신 maven이 이 종속성을 찾을 수 있는 시스템 경로를 제공합니다. 시스템 경로를 사용하여 경로를 제공할 수 있습니다.

Maven 빌드 수명 주기는 3가지 단계로 나뉩니다.

  1. 기본 — 이 단계의 일부로 maven은 많은 작업을 수행합니다.
  2. maven은 pom.xml을 읽고 유효한 xml이 있는지 여부를 확인합니다.
  3. 그런 다음 maven은 소스 코드를 컴파일하고 클래스 파일을 생성하여 대상 폴더에 저장합니다.
  4. 그런 다음 테스트 단계에서 테스트의 일부로 maven이 프로젝트 내에서 단위 테스트를 실행합니다.
  5. 패키지 — 패키지의 일부로 maven은 소스 코드를 jar, war, ear 또는 zip 파일과 같이 선택한 아티팩트로 패키징합니다.
  6. 통합 테스트 — 프로젝트에 통합 테스트가 포함되어 있고 실행되는 경우
  7. verify — maven은 이전 단계에서 실행되는 통합 테스트의 성공 여부를 확인합니다.
  8. install — maven은 생성된 패키지를 로컬 저장소에 설치합니다.
  9. 배포 — 설치 후 maven이 원격 저장소에 배포됩니다.
  10. 2. 정리: 이 단계는 주로 컴파일된 Java 클래스 또는 생성된 메타데이터를 정리합니다. 예: mvn 새로 설치

    3. 사이트: 프로젝트 내부에 있는 자바 문서를 생성하는 역할을 합니다.

    Maven은 훨씬 발전된 방식으로 빌드 프로세스를 단순화합니다. Apache Maven에 대해 배우고 이해해야 할 몇 가지 사항을 얻었기를 바랍니다.

    기사를 읽어 주셔서 감사합니다. 박수, 공유, 댓글 부탁드립니다. 그런 기사를 더 많이 쓰도록 격려할 것입니다. 소중한 제안을 공유해 주세요. 솔직한 피드백에 감사드립니다!!!

    가장 자주 묻는 Java8 스트림 기반 인터뷰 질문 — 1부 JAVA에서 데이터베이스에 액세스하는 가장 쉬운 방법 Java 코딩에서 여러 예외를 포착 : 책 교정을 위해 시간당 $50에서 $100를 지불하는 JavaScript 실제 사이트에서 n번째 피보나치 수 찾기 스레딩 및 다중 처리 파이썬 설명