Apache Maven — 요약
Java 개발자인 경우 프로젝트 작업 중 일상적인 활동에는 코드 작성, 코드 컴파일, 코드 테스트, jar 또는 war 파일과 같은 아티팩트 형식으로 패키징한 다음 이를 배포하는 작업 이 포함 됩니다 . 웹 서버에 아티팩트.
수동으로 처리해야 하는 많은 작업이 있으며 분명히 Apache Maven 이라는 라이브러리를 사용하여 이러한 작업을 자동화할 수 있습니다.
이 기사에서는 Apache Maven이 무엇이며 이를 효과적으로 사용하여 Java 프로젝트를 빌드하고 관리하는 방법을 이해합니다.
먼저 maven의 기본 사항을 이해합시다.
메이븐이란?
Maven은 Java 및 Scala와 같은 JVM 언어를 사용하여 개발된 프로젝트를 지원하고 관리하기 위해 개발된 프로젝트 관리 도구입니다. 프로젝트 관리 도구의 주요 작업은 다음과 같습니다.
- 소스 코드 빌드
- 소스 코드 테스트
- 항아리, 전쟁 또는 귀에 포장
- 자바 문서 생성
- 종속성 관리
이제 더 진행하여 머신에 Maven을 설치하는 방법을 살펴보겠습니다.
- 브라우저에서 https://maven.apache.org/ 를 엽니다.
- 다운로드 섹션으로 이동하여 최신 maven 버전 zip 폴더를 다운로드하고 압축을 풉니다.
- 환경 경로 변수 설정 JAVA_HOME 및 MAVEN_HOME 추가
- 환경 변수에 maven 경로를 추가하십시오. 예: F:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
메이븐 저장소:
Maven 리포지토리는 pom.xml이 포함된 패키징된 jar 파일의 디렉터리입니다. Maven은 리포지토리에서 종속성을 검색합니다. Maven 리포지토리에는 세 가지 유형이 있습니다.
- 로컬 저장소
- 중앙 저장소
- 원격 저장소
또한 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 프로젝트를 생성하면 다음과 같은 폴더가 표시됩니다.
- src — 소스 — 애플리케이션 소스 코드 및 애플리케이션 단위 테스트의 루트입니다.
- src/main/java — 애플리케이션의 소스 코드가 포함되어 있으며 애플리케이션에 작성하는 모든 프로덕션 코드는 이 폴더 안에 있습니다.
- src/main/resources — 프로젝트에서 사용하는 모든 정적 파일을 저장하는 곳입니다. 예 application.properties , XML 파일, CSV 파일 등
- 웹 애플리케이션을 개발하는 경우 모든 html 및 javascript 파일이 이 폴더 아래에 있습니다.
- src/test/java — 여기에서 단위 테스트를 작성하고 응용 프로그램에 대한 통합 테스트를 수행합니다.
- pom.xml — 프로젝트 종속성의 메타데이터를 포함합니다.
- 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 이상의 상위 버전
- 간단한 폼 파일
- 슈퍼 폼 파일
- 효과적인 치어 파일
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에는 두 가지 유형의 종속성이 있습니다.
- 스냅샷 종속성: 스냅샷 종속성은 활발히 개발 중이고 불안정한 프로젝트를 의미합니다.
- 릴리스 종속성: 프로젝트가 완료되면 릴리스됩니다.
종속성 범위를 사용하여 maven 종속성의 가시성을 제어할 수 있습니다. 범위에는 5가지 유형이 있습니다.
- 컴파일: 이것은 모든 종속성의 기본 범위이며 컴파일로 표시된 종속성은 프로젝트의 클래스 경로 내에서 사용할 수 있습니다.
- 제공됨: 범위를 제공한 종속성은 런타임에 jdk 또는 웹 서버에 의해 제공됩니다.
- 런타임: 이름에서 알 수 있듯이 런타임으로 표시된 종속성은 런타임에만 사용할 수 있지만 컴파일 타임에는 사용할 수 없습니다.
- 테스트: 이러한 종속성은 테스트를 작성하고 실행할 때만 사용할 수 있습니다.
- 시스템 범위: 이것은 제공된 범위와 유사하지만 유일한 차이점은 시스템에서 종속성을 찾을 수 있는 위치를 명시적으로 언급했다는 것입니다. 런타임에 이 종속성을 제공하는 JDK 또는 웹 서버 대신 maven이 이 종속성을 찾을 수 있는 시스템 경로를 제공합니다. 시스템 경로를 사용하여 경로를 제공할 수 있습니다.
Maven 빌드 수명 주기는 3가지 단계로 나뉩니다.
- 기본 — 이 단계의 일부로 maven은 많은 작업을 수행합니다.
- maven은 pom.xml을 읽고 유효한 xml이 있는지 여부를 확인합니다.
- 그런 다음 maven은 소스 코드를 컴파일하고 클래스 파일을 생성하여 대상 폴더에 저장합니다.
- 그런 다음 테스트 단계에서 테스트의 일부로 maven이 프로젝트 내에서 단위 테스트를 실행합니다.
- 패키지 — 패키지의 일부로 maven은 소스 코드를 jar, war, ear 또는 zip 파일과 같이 선택한 아티팩트로 패키징합니다.
- 통합 테스트 — 프로젝트에 통합 테스트가 포함되어 있고 실행되는 경우
- verify — maven은 이전 단계에서 실행되는 통합 테스트의 성공 여부를 확인합니다.
- install — maven은 생성된 패키지를 로컬 저장소에 설치합니다.
- 배포 — 설치 후 maven이 원격 저장소에 배포됩니다.
2. 정리: 이 단계는 주로 컴파일된 Java 클래스 또는 생성된 메타데이터를 정리합니다. 예: mvn 새로 설치
3. 사이트: 프로젝트 내부에 있는 자바 문서를 생성하는 역할을 합니다.
Maven은 훨씬 발전된 방식으로 빌드 프로세스를 단순화합니다. Apache Maven에 대해 배우고 이해해야 할 몇 가지 사항을 얻었기를 바랍니다.
기사를 읽어 주셔서 감사합니다. 박수, 공유, 댓글 부탁드립니다. 그런 기사를 더 많이 쓰도록 격려할 것입니다. 소중한 제안을 공유해 주세요. 솔직한 피드백에 감사드립니다!!!
가장 자주 묻는 Java8 스트림 기반 인터뷰 질문 — 1부 JAVA에서 데이터베이스에 액세스하는 가장 쉬운 방법 Java 코딩에서 여러 예외를 포착 : 책 교정을 위해 시간당 $50에서 $100를 지불하는 JavaScript 실제 사이트에서 n번째 피보나치 수 찾기 스레딩 및 다중 처리 파이썬 설명
![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































