SW/Maven

Maven : 개념, 사용해야하는 이유, 장점

얇은생각 2024. 1. 10. 07:30
반응형

메이븐이란

개발자들은 Maven을 빌드 자동화 도구라고 부르지만 프로젝트 관리 도구 그 이상입니다. 프로젝트를 구축한다는 것은 단위 테스트일 수도 있고 컴파일된 코드를 jar 파일로 패키징하는 통합 테스트일 수도 있는 테스트를 실행하는 소스 코드를 컴파일하는 것을 의미합니다. 이러한 jar 파일을 웹 아카이브 또는 서버 및 기타 여러 다른 서버에 배포하는 war 파일로 묶습니다. 작업 이러한 모든 작업은 maven 등과 같은 도구를 사용하여 자동화할 수 있습니다.

apache ant와 같은 도구로 작업한 경우 이러한 작업을 수행하거나 작업을 자동화하려면 많은 XML 구성을 생각해내야 한다는 것을 알고 있습니다. 애플리케이션을 사용하는 반면 Maven은 구성보다 규칙을 사용합니다. , 프로젝트를 생성할 때 특정 프로젝트 구조를 따르는 경우 여기에 기본 프로젝트 디렉터리가 있습니다. 소스 기본 Java 소스 폴더 아래에 main이라는 하위 폴더가 있습니다. 여기에는 Java가 있습니다. 모든 소스 코드는 소스로 이동해야 합니다. 기본 SRC 기본 리소스는 Java 클래스에서 사용하는 속성 파일이나 XML 구성과 같은 리소스가 SRC 테스트로 이동해야 하는 곳입니다.

Java는 모든 단위 및 통합 테스트가 배치되어야 하는 곳이고 마지막으로 SRC 테스트 리소스가 있어야 합니다. 이 폴더 구조를 사용하면 테스트에 사용하는 모든 속성 파일이나 XML 구성을 배치해야 합니다. maven install과 같은 maven 명령을 실행하면 maven SRC 기본 Java 실행 유닛에서 소스 코드를 컴파일합니다. SRC 테스트 Java에서 테스트하고 테스트가 통과하면 컴파일된 클래스를 jar 파일로 묶거나 패키징합니다. 독립 실행형 Java 애플리케이션인 경우 웹 애플리케이션인 경우 war 파일로 묶고 war를 배포할 수도 있습니다.

웹 애플리케이션에 파일을 업로드합니다. 이 폴더 구조는 웹 애플리케이션용 독립 실행형 Java 프로젝트와 다양한 프로젝트 유형에 대해 약간 다르지만 각 프로젝트 유형에 대해 이러한 폴더를 수동으로 만들 필요가 없다는 장점이 있습니다. Maven은 몇 가지 원형을 제공합니다. 이러한 원형을 템플릿으로 생각합니다. 아키타입을 사용하여 명령을 실행할 수 있으며 Maven에서 요구하는 표준 폴더 구조인 폴더 구조를 생성합니다. 독립형, 웹앱, EAR 등과 같은 다양한 유형의 아키타입이 있습니다. 또 다른 추가 이점은 Eclipse IntelliJ와 같은 모든 인기 있는 IDE가 제공된다는 것입니다. 이러한 원형에 대한 기본 지원을 통해 우리는 IDE 내에서 프로젝트의 다양한 유형의 Maven 프로젝트를 생성하고 intelliJ Eclipse 내에서 빌드를 실행하고 실행할 수도 있습니다.

 

 

Maven : 개념, 사용해야하는 이유, 장점

 

 

메이븐을 사용해야하는 이유

Maven 구성에 대한 규칙 외에 Maven을 사용하는 이유에 대한 백만 달러짜리 질문은 개발자가 오픈 소스 프로젝트 또는 회사 내의 다른 프로젝트에서 작업해야 하는 경우 Maven 이전 개발자를 위한 공통 인터페이스와 같은 여러 가지 다른 이점을 제공합니다. 기업에서는 먼저 해당 프로젝트를 빌드하는 방법을 이해해야 했습니다. 각 팀이 시간이 많이 걸리고 바쁜 maven 이외의 다른 도구를 사용할 때 빌드를 구성하는 자신만의 방법이 있을 수 있기 때문입니다.

maven은 단순히 프로젝트를 가져오는 것만으로 작업을 단순화합니다. Maven 새로 설치를 실행할 수 있는 소스 제어와 프로젝트는 이제 모든 개발자가 Maven에 의해 지정된 하나의 표준 프로젝트 구조를 따르기 때문에 우리를 위해 빌드됩니다. 두 번째로 Maven은 단순한 빌드 관리 도구가 아니라 종속성을 관리할 수도 있습니다. 우리 프로젝트는 조직 내의 다른 프로젝트에 의존하거나 심지어 오픈 소스 세계에서도 Maven은 해당 프로젝트를 가져와 해당 종속성을 다운로드하고 이를 사용하여 소스 코드를 컴파일하고 테스트를 실행하고 이러한 종속성을 war 파일 및 EAR 파일로 묶을 수도 있습니다. Maven은 모든 아티팩트와 해당 플러그인을 저장하고 즉시 다운로드하는 저장소라는 개념입니다.

따라서 프로젝트에 오픈 소스 세계나 회사 내에서도 특정 종속성이 필요한 경우 해당 종속성은 이 저장소에서 가져옵니다. 그리고 우리가 프로젝트를 빌드할 때 프로젝트를 이러한 저장소로 푸시할 수도 있습니다. 이러한 저장소는 인터넷에 있을 수 있습니다. 모든 오픈 소스 프로젝트를 jar로 사용할 수 있는 공용 Maven 저장소가 있습니다. 많은 회사가 자체 내부 저장소를 유지 관리합니다. 그런 식으로 그들은 회사 내 팀이 사용할 수 있는 jar 파일이나 오픈 소스 프로젝트를 제어할 수 있고 또한 여기 이 저장소에 푸시하여 회사 내에서 아티팩트를 공유할 수 있습니다.

jar 파일이 이 저장소에 푸시되면 이를 사용하려는 다른 팀은 간단히 끌어오거나 종속성으로 추가하고 나중에 재사용할 때 저장소에서 더 많이 사용할 수 있습니다. maven은 다운로드하고 설치할 때 매우 가볍습니다. 플러그인으로 필요한 것은 무엇이든 플러그인 모델을 사용합니다. 예를 들어 단위 테스트를 실행할 수 있는 컴파일러 플러그인 확실한 플러그인과 웹 서비스 WSDL 파일에서 스텁을 생성하는 데 사용할 수 있는 ws 가져오기 플러그인 및 기타 여러 플러그인이 있습니다. 따라서 Maven은 프로젝트 전체에서 재사용할 수 있는 플러그인 모델을 사용할 때, 컴파일러나 Surefire 플러그인 또는 기타 플러그인이 업그레이드되는 경우에도 Maven이 자동으로 최신 플러그인을 다운로드합니다.

예를 들어 이 Surefire 플러그인은 첫 번째 단위 테스트를 실행할 때만 Maven에 의해 다운로드되며 그 후에는 이 플러그인이 변경될 때까지 다운로드되지 않습니다. 이는 플러그인 모델 재사용을 사용하는 것의 장점이며 업그레이드가 발생하면 풀 수 있습니다. 물론 이러한 모든 장점을 갖춘 Maven은 최고의 빌드 관리 종속성 관리 중 하나이며 사용해야 하는 완전한 프로젝트 관리 도구입니다.

반응형

'SW > Maven' 카테고리의 다른 글

Maven : Plugin, Goal, LifeCycle 개념, 개요, 설명  (0) 2024.01.11