26 가장 중요한 Maven 인터뷰 질문 및 답변 [초보자 및 경험자용]
게시 됨: 2021-01-21목차
개요
당신은 이미 Maven의 전문 지식이 오늘날 큰 가치가 있다는 것을 알고 있습니다. 그렇지 않으면 여기에 있지 않을 것입니다. 결국 Maven은 대부분의 최고의 기업이 선택하는 도구이며 당연히 경쟁에서 앞서기 위해 자신과 같은 개인을 고용하는 데 열심입니다.
이제 다음 면접에서 어떤 질문을 받을지 정확히 아는 세상은 너무 완벽할 것입니다. 그러나 다음으로 가장 좋은 것이 있습니다. 가장 일반적으로 묻는 Maven 인터뷰 질문 및 답변의 신중하게 선별된 목록입니다. 이것들은 당신이 보고 있는 직업에 착륙할 수 있습니다. 자, 바로 파헤쳐 봅시다!
메이븐 인터뷰 질문과 답변
질문 1: 메이븐이란 무엇입니까?
Apache Maven은 Java로 작성된 프로젝트를 빌드하고 관리하는 데 사용되는 Apache Software Foundation에서 호스팅하는 효과적인 빌드 자동화 도구입니다. 또한 C/C++, Ruby, Scala 및 기타 몇 가지 프로그래밍 언어로 작성된 프로젝트 관리를 지원합니다. Maven은 프로젝트의 인프라를 자동화하고 이해하기 위해 기본 빌드 수명 주기 프레임워크를 사용합니다.
질문 2: Maven의 목표는 무엇입니까?
개발자가 시간을 절약하는 방식으로 전체 개발 노력 상태를 이해하도록 돕기 위해 Maven의 주요 관심사는 다음과 같습니다.

- 프로젝트를 구축하는 과정을 간단하게 만들기 위해
Maven은 개발자에게 기본 메커니즘에 대한 액세스를 제공하지만 다른 여러 세부 사항으로부터 보호합니다.
- 빌드 시스템에서 균일성을 활성화하려면
Maven 프로젝트는 플러그인 시스템과 POM(Project Object Model)을 사용하여 구축됩니다. 하나의 프로젝트에 익숙해지면 모든 Maven 프로젝트 빌드를 이해하는 데 도움이 됩니다. 이는 시간 절약에 매우 효율적입니다.
- 효율성 증대를 위한 귀중한 프로젝트 정보 제공
이 정보는 주로 POM에서 제공되며 부분적으로는 프로젝트 소스에서 제공됩니다. Maven이 제공하는 정보에는 사용된 종속성, 단위 테스트 보고서, 타사 코드 분석 제품의 플러그인 보고서 등이 포함됩니다.
- 최고의 개발 사례를 교육하는 공간 만들기
여기에는 실행, 단위 테스트 보고서, 사양 등에 관한 현재 개발 원칙에 중점을 둡니다.
질문 3: 프로젝트 배포 순서를 설명합니까?
프로젝트 배포 프로세스에는 다음 단계가 포함됩니다.
1단계: 진행 중인 모든 프로젝트의 코드를 SVN 또는 소스 코드 저장소에 입력합니다. 이것은 코드에 태그를 지정할 수 있도록 수행됩니다.
2단계: SVN에서 전체 소스 코드를 다운로드합니다.
3단계: 세 번째 단계는 애플리케이션 구축을 포함합니다.
4단계: EAR 파일 또는 WAR 파일로 얻은 빌드 출력은 네트워크의 공통 위치에 저장됩니다.
5단계: 파일이 네트워크에서 검색되어 프로덕션 사이트에 배포됩니다.
6단계: 배포 프로세스가 완료되면 문서가 애플리케이션의 날짜 및 버전으로 업데이트됩니다.
질문 4: Maven에서 어떤 측면을 관리합니까?
Maven의 개발자는 다음과 같은 측면을 관리합니다.
- 프로젝트에서 사용하는 종속성
- SCM(소프트웨어 구성 관리)
- 릴리스 및 빌드
- 문서 세부 정보
- 보고
- 분포
- 메일링 리스트
질문 5: Maven 사이트를 빠르게 구축할 수 있는 명령은 무엇입니까?
명령은 -
mvn 사이트
질문 6: Maven의 기능은 무엇입니까?
Maven의 몇 가지 주요 기능은 다음과 같습니다.
- 개발자가 최고의 개발 사례를 따르도록 권장합니다. 따라서 프로젝트 구축이 더 간단하고 빨라집니다. 몇 초 안에 새 프로젝트를 시작할 수 있습니다.
- 일관된 사용을 가능하게 하므로 신규 개발자가 프로젝트에 합류할 때 램프 업 시간이 없습니다.
- Maven은 종속성을 효율적으로 관리하므로 업데이트가 자동으로 수행되고 전이 종속성이 정렬됩니다.
- 여러 프로젝트에 동시에 액세스할 수 있습니다.
- 여기에는 광범위한 라이브러리 및 메타데이터 저장소가 포함되어 있습니다. 또한 최신 및 최대 규모의 오픈 소스 프로젝트에 실시간으로 액세스할 수 있도록 조치를 취하고 있습니다.
- 확장 기능과의 호환성을 가능하게 하고 사용자가 Java 또는 Ruby, C# 및 Scala와 같은 다른 스크립팅 언어로 플러그인을 작성할 수 있도록 합니다.
- 추가 구성이 필요하지 않은 새 릴리스 및 기능에 즉시 액세스할 수 있습니다.
- Maven을 사용하여 개발자는 JAR, WAR과 같은 미리 정의된 출력 유형을 모방하는 수많은 프로젝트를 빌드할 수 있습니다. 이것은 스크립팅이 거의 필요하지 않습니다.
- Maven은 프로젝트의 개발 상태에 관한 표준 보고서를 생성하기 위해 빌드와 동일한 메타데이터를 사용하여 웹사이트 또는 PDF를 생성할 수 있습니다.
- 구성을 거의 변경하지 않고 소스 제어 시스템을 통합할 수 있습니다. 그러면 Maven을 사용하여 특정 태그를 기반으로 프로젝트 릴리스를 관리할 수 있습니다. 이 데이터는 배포 위치에 게시하여 다른 프로젝트에서 사용할 수도 있습니다.
- JAR의 중앙 저장소는 매우 가치가 있으며 Maven은 다른 종속성과 함께 JAR을 사용하도록 권장합니다. 이를 통해 프로젝트 빌드에 필요한 모든 JAR을 중앙 JAR 저장소에서 다운로드할 수 있습니다. 이것은 Perl의 CPAN과 유사하며 프로젝트 전체에서 JAR을 재사용할 수 있습니다. 프로젝트 간의 활발한 커뮤니케이션을 통해 이전 버전과의 호환성 문제를 제거할 수 있습니다.
질문 7: 클린 라이프사이클의 단계는 무엇입니까?
깨끗한 수명 주기 단계는 다음과 같습니다.
- 사전 청소
- 깨끗한
- 청소 후
질문 8: POM을 정의하십시오.
POM(Project Object Model의 약자)은 Maven의 기본 작업 단위입니다. XML 확장으로 생성되며 pom.xml에 의해 기본 디렉토리에 저장됩니다. Maven에서 수행한 다양한 구성에 대한 정보가 이 파일입니다.
질문 9: 사이트 수명 주기의 단계는 무엇입니까?
다음은 사이트 수명 주기의 단계입니다.
- 사전 사이트
- 대지
- 포스트 사이트
- 사이트 배포
질문 10: POM에 지정된 경우 프로필을 수정할 수 있는 POM의 요소는 무엇입니까?
다음 POM 요소를 수정할 수 있습니다.
<플러그인>
<속성>
<모듈>
<보고>
<저장소>

<플러그인 저장소>
<종속성>
<종속성 관리>
<유통관리>
질문 11: Maven의 빌드 수명 주기를 설명하세요.
목표 실행 순서를 지정하기 위해 정의된 논리적 단계 시퀀스를 빌드 수명 주기라고 합니다. 각 단계는 수명 주기의 단계를 나타냅니다.
체크 아웃: 상위 10가지 중요한 스프링 부트 인터뷰 질문 및 답변
질문 12: Maven의 3가지 빌드 수명 주기는 무엇입니까?
Maven의 세 가지 빌드 주기는 다음과 같습니다.
- 정리: 이 단계는 이전 빌드에서 남아 있는 모든 아티팩트를 지우는 단계입니다. 세척 수명 주기는 세척 전, 세척 및 세척 후의 세 단계로 구성됩니다.
- 기본(또는 빌드): 기본 빌드 주기는 애플리케이션이 빌드되는 위치에 대한 것입니다.
- 사이트: 이 단계에서 모든 관련 사이트 문서가 생성됩니다. 사이트 수명 주기에는 사전 사이트, 사이트, 사후 사이트 및 사이트 배포의 4단계가 있습니다.
질문 13: Maven의 목표를 설명하십시오.
목표는 프로젝트의 구축 및 관리에 필수적인 특정 작업을 의미합니다. 목표는 빌드 단계에 바인딩되거나 바인딩되지 않을 수 있습니다. 0 빌드 단계에 바인딩된 단계는 빌드 수명 주기 내에서 실행할 필요가 없습니다. 직접 호출을 통해 외부에서 수행할 수 있습니다.
질문 14: 다음 명령의 목적은 무엇입니까: mvn clean dependency:copy-dependencies 패키지?
위의 명령은 프로젝트를 지우는 데 사용됩니다. 그런 다음 종속성을 복사하고 프로젝트의 모든 단계를 실행합니다.
질문 15: Maven 용어로 빌드 프로필을 설명하십시오.
빌드 프로필은 Maven 빌드의 기본값을 설정하거나 재정의할 수 있는 구성 값 그룹을 나타냅니다. 빌드 프로필을 사용하면 다양한 환경(예: 프로덕션 환경 대 개발 환경)에 맞게 빌드를 사용자 지정할 수 있습니다.
질문 16: 세 가지 다른 빌드 프로필을 언급하십시오.
- 사용자별: Maven 설정의 xml 파일(%USER_HOME%/.m2/settings.xml)에서 사용자별 빌드 프로필을 정의합니다.
- 프로젝트별: 프로젝트별 빌드 프로필은 POM 파일인 pom.xml의 두 파일 중 하나에 정의됩니다.
- 전역: 이 빌드 프로필은 Maven의 전역 설정 xml 파일(%M2_HOME%/conf/settings.xml)에 정의됩니다.
질문 17: 로컬 저장소의 기본 위치는 무엇입니까?
기본 위치는 ~/m2./repository 입니다.
질문 18: 로컬 저장소에서 JAR 파일 설치를 시작하는 명령을 작성하시겠습니까?
명령은 다음과 같습니다. mvn install
질문 19: 다른 Maven 플러그인에 대해 간략하게 설명하십시오.
두 가지 유형의 Maven 플러그인은 다음과 같습니다.
- 빌드 플러그인: 이 플러그인은 빌드 프로세스 중에 실행됩니다. pom.xml 파일의 <build/> 요소에서 설정을 거쳐야 합니다.
- 보고 플러그인: 사이트 생성이 발생할 때 실행되며 pom.xml 파일의 <reporting/> 요소에서 구성을 거쳐야 합니다.
질문 20: 프로젝트를 오프라인으로 빌드하는 데 사용되는 명령은 무엇입니까?
다음 명령이 사용됩니다. mvn o 패키지
질문 21: 종속성을 제외하는 명령은 무엇입니까?
제외 요소는 종속성을 실행하는 데 사용됩니다 .
질문 22. 빌드 중에 플러그인을 자동으로 정리하는 단계는 무엇입니까?
pom.xml 파일의 실행 태그 내에 clean 플러그인을 포함시키면 플러그인이 정리됩니다.
질문 23: 하위 POM에 대한 플러그인 전파를 중지하는 프로세스는 무엇입니까?
다음 명령을 사용하십시오. <inherited>를 false로 설정 하십시오.
질문 24: pom 파일에서 실행 요소의 사용을 설명합니까?
pom 파일의 <execution> 요소는 플러그인 실행에 필요한 정보를 담고 있습니다.
질문 25: 프로젝트의 완전한 아티팩트 이름을 언급하십시오.
프로젝트의 정규화된 아티팩트 이름은 <groupId>:<artifactId>:<version> 입니다.
질문 26: pom.xml 파일에서 최종 속성을 참조하는 단계를 언급합니까?
이를 위해 값 정의에 사용된 XML 요소 이름은 "pom"이 프로젝트 요소 별칭으로 작동하도록 허용되는 속성 이름에서 사용됩니다.
즉, ${pom.name}은 프로젝트 이름에 대한 참조이고, ${pom.version}은 버전을 나타내며, ${pom.build.finalName}은 빌드된 프로젝트의 패키징에서 생성된 최종 파일 이름입니다. 등등.

이것이 Maven 인터뷰에 대한 이 질문과 답변 목록의 전부입니다. 이것이 유용하기를 바랍니다!
반드시 읽어야 함: 신입 및 경력자를 위한 Jenkins 인터뷰 질문 및 답변 2021
세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
이것들은 주로 인터뷰를 위해 준비하기 위한 Maven의 기본 지식을 약간 다룹니다. 완전한 목록은 아니지만 Maven에 대한 지식으로 채용 담당자를 구애하기 위한 토대를 마련합니다.
전체 스택 소프트웨어인 Jenkins에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트를 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. , 과제, IIIT-B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
메이븐이란?
Maven은 프로젝트 종속성을 자동으로 다운로드하는 빌드 자동화 도구이므로 직접 수행할 필요가 없습니다. 프로젝트를 빌드, 컴파일 및 테스트할 수 있으므로 다양한 프로젝트에서 작업하는 경우 이 도구가 적합합니다. 일단 설치되면 간단한 명령을 사용하여 프로젝트 빌드 및 테스트를 관리할 수 있으며 프로젝트 종속성도 다운로드하므로 수동으로 수행할 필요가 없습니다.
Gradle이란 무엇입니까?
Gradle은 빌드 자동화 도구입니다. 빌드 도구는 소프트웨어 빌드를 자동화하도록 설계된 소프트웨어 응용 프로그램입니다. 주요 목적은 제품을 구축하고 구축 프로세스를 관리하는 데 필요한 노력을 줄이는 것입니다. Gradle은 스크립트 가능하고 유연한 빌드 시스템을 만드는 데 사용할 수 있는 자연스러운 빌드 언어입니다. Gradle은 오픈 소스 프로젝트이며 회사의 빌드 프로세스에 통합될 수 있습니다. Ant, Maven 및 기타 도구보다 빠르고 똑똑하게 빌드하는 빌드 도구입니다. 다중 프로젝트 빌드 시나리오를 위해 설계되었으며 구성에 대한 규칙을 기반으로 합니다. 요청 시 애플리케이션을 빌드, 테스트 및 게시하는 빌드 자동화 도구입니다. 또한 모든 종속성을 처리할 수 있습니다.
빌드 자동화 도구는 무엇입니까?
Jenkins, TravisCI 및 CircleCI와 같은 빌드 자동화 도구는 빌드 프로세스를 처음부터 끝까지 자동화하는 데 사용됩니다. 여기에는 애플리케이션 빌드, 단위 테스트 실행, 버전 제어 시스템(예: git)과의 통합, 아티팩트를 비공개 또는 공개 리포지토리에 업로드하고 각 빌드에 대한 보고서 생성이 포함됩니다. 이점은 빌드, 테스트 및 배포 프로세스를 자동으로 실행하도록 이러한 도구를 구성할 수 있다는 것입니다. 일단 구성되면 팀과 지속적 통합 서비스를 제공할 수 있어 지속적 전달을 용이하게 하고 강력하고 확장 가능한 빌드 파이프라인을 제공하도록 설계 및 구현됩니다.