CodeGym/Java Course/모듈 3/메이븐 설치

메이븐 설치

사용 가능

1.1 대형 프로그램

우리는 이미 작은 프로그램을 작성하는 방법을 배웠으므로 이제 큰 프로그램을 작성하는 방법을 배웁니다. 아시다시피 프로그램이 더 크고 복잡할수록 개발 비용이 더 많이 듭니다 :) 그리고 약간의 배경 지식부터 시작하겠습니다 ...

프로그램의 규모가 커짐에 따라 개발자는 두 가지 새로운 과제에 직면하게 됩니다.

  • 많은 사람들이 같은 프로그램에 참여하고 있습니다.
  • 프로그램의 전체 코드를 아는 사람은 없습니다.

매우 자주 프로그래머가 프로그램의 한 곳에서 버그를 수정하고 동시에 다른 곳에서 무언가를 깨뜨리는 상황이 발생하기 시작했습니다. 릴리스 문서에는 다음과 같은 농담도 있습니다.

변경 사항 목록:

  • 오래된 버그를 수정했습니다 :)
  • 새로운 것을 추가했습니다 :(

그런 다음 그들은 이 문제를 해결하기 위해 기술 및 관리라는 두 가지 접근 방식을 제시했습니다.

기술적인 접근 방식은 프로그램을 라이브러리와 모듈 로 나누는 것이었습니다 . 그러한 각 모듈은 대형 프로젝트가 구축되는 작은 벽돌이었습니다. 라이브러리는 다양한 프로그램에서 사용할 수 있는 범용 구성 요소입니다.

관리적 접근 방식은 훨씬 더 흥미로웠습니다. 하나의 프로젝트/라이브러리에서 작업할 수 있는 사람의 수를 제한했습니다. 경험적으로 그들은 심지어 규칙까지 내놓았습니다. 팀은 "피자 두 판으로 배불리 먹일 수 있을 만큼" 커야 한다는 것이었습니다 . 이는 일반적으로 프로젝트에 8명 이상이 작업하는 경우 두 개의 프로젝트로 분할해야 함을 의미합니다.

Java 개발자 커뮤니티에서 모든 경우에 대한 라이브러리를 작성하고 공개적으로 사용할 수 있도록 하는 것이 인기를 얻었습니다. 따라서 Java 프로그래머는 동일한 코드를 다시 작성할 수 없으며(종종 원시적이고 버그가 포함됨) 기성품 및 검증된 솔루션을 사용합니다 .

추가 인센티브는 서버 측 솔루션(백엔드에서 작동)을 작성할 때 Java 언어가 큰 인기를 얻었다는 사실이었습니다. 첫째, 서버 소프트웨어는 안정성에 대한 요구 사항이 더 높으며 오랜 시간 테스트를 거친 라이브러리를 사용하는 것이 항상 자체 코드를 작성하는 것보다 좋습니다.

둘째, 서버는 코드 크기에 실질적으로 제한이 없습니다. 모바일 애플리케이션 개발자는 이를 10MB로, 데스크탑 애플리케이션을 100MB로 압축하려고 합니다. 그리고 Java 백엔드 개발자는 수십 기가바이트의 라이브러리를 프로젝트에 밀어 넣을 수 있으며 아무도 그에게 한마디도 하지 않습니다 :)

그건 그렇고, 이것은 농담이 아닙니다. 수십 개의 모듈과 수백 개의 라이브러리가 있는 백엔드 프로젝트를 쉽게 접할 수 있습니다. 그러나 이러한 프로젝트에 대한 빌드 스크립트를 설명(및 변경!)하는 것은 매우 어려워졌습니다.

그리고 Maven이 나타났습니다.

1.2 메이븐 소개

Maven 은 프로젝트 빌드 관리를 위한 특별한 "프레임워크"입니다. 3가지를 표준화합니다.
  • 프로젝트 설명;
  • 프로젝트 빌드 스크립트
  • 라이브러리 간의 종속성.

Maven의 전신은 Ant 이고 후속 제품은 Gradle 입니다 . 그러나 나열된 세 가지 표준을 개발 및 완성하고 이들의 상호 작용을 규제한 것은 Maven이었습니다. Java 커뮤니티의 작업을 새로운 수준으로 끌어 올린 것은 바로 그 사람이었습니다. 좀 더 자세히 살펴보겠습니다.

메이븐

기술적으로 Maven은 프로젝트 빌드 프로세스를 관리하는 것이 주요 목적인 특수 프로그램/서비스입니다 . 간단히 아카이브로 다운로드하고 모든 디렉토리에 압축을 풀 수 있습니다. 이를 위해 특별한 설치 프로그램이 필요하지 않습니다.

그녀에게는 그래픽 인터페이스가 없습니다. 모든 명령은 콘솔을 사용하여 그녀에게 주어집니다 . 더욱 편하게 작업할 수 있도록 OS에 특수 환경 변수를 등록하는 것이 좋습니다.

Maven 에는 프로젝트를 빌드할 때 사용하는 라이브러리를 저장하는 특수 저장소 (디렉토리/폴더)도 있습니다. 디스크에서 일부 폴더를 선택하고 리포지토리로 지정해야 합니다.

또 다른 흥미로운 점은 모든 라이브러리에 대한 글로벌 Maven 리포지토리가 있다는 것입니다. 하지만 이에 대해서는 나중에 이야기하겠습니다.

1.3 Maven 다운로드 및 설치

Maven에는 공식 사이트 maven.apache.org 가 있습니다 . 프로젝트에 대한 많은 문서가 있으므로 어려움이나 추가 질문이 있으면 부끄러워하지 말고 들어 오십시오.

또한 다운로드 페이지( https://maven.apache.org/download.cgi )에서 maven 아카이브(apache-maven-3.8.5-bin.zip)를 다운로드할 수 있습니다. 압축을 푼 아카이브는 약 10MB를 차지하지만 로컬 maven 저장소에는 결국 수백 메가바이트의 메모리가 필요합니다.

Maven은 Java로 작성되었으며 버전 7 이상의 JRE와 정의된 JAVA_HOME 환경 변수가 필요합니다.

컴퓨터에 Maven용 폴더(예: d:\devtools ) 를 만들고 Maven이 포함된 아카이브를 그 안에 압축을 풉니다. 결과적으로 프로젝트의 기본 바이너리가 위치할 d:\devtools\maven\bin 과 같은 폴더를 가져와야 합니다.

1.4 환경 변수

그런 다음 압축을 푼 아카이브의 bin 폴더 경로를 PATH 환경 변수에 추가해야 합니다.

Windows 10에서 환경 변수를 설정하려면 제어판 - 시스템 - 고급 시스템 설정으로 이동해야 합니다. 그런 다음 "Environment Variables"를 클릭하고 PATH를 찾아 "Edit"를 선택한 다음 줄 끝에 d:\devtools\maven\bin 경로를 추가합니다 . 경로는 정확히 bin 폴더로 연결되어야 합니다.

Unix 기반 OS에서 콘솔 명령을 사용하여 환경 변수를 추가할 수 있습니다.

export PATH=/opt/apache-maven-3.8.5/bin:$PATH

모든 작업을 올바르게 수행했다면 콘솔에서 "mvn -v" 명령을 입력해야 합니다. 이에 대한 응답으로 다음과 같은 내용이 표시됩니다.

C:\Users\Zapp>mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: T:\apache-maven-3.0.5\bin\..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

1.5 로컬 메이븐 저장소

Maven이 프로젝트를 빌드할 때 사용할 jar 라이브러리를 저장할 특수 폴더를 설정할 수도 있습니다. 이 폴더를 로컬 maven 리포지토리 라고 합니다 .

해당 폴더가 지정되지 않은 경우 Maven은 현재 사용자의 홈 디렉토리에 폴더를 생성합니다. 내 디렉토리는 C:\Users\Zapp\.m2 입니다.

폴더 이름은 ".m2"입니다. Linux 사용자를 놀라게하지는 않지만 다양한 "저장소"및 / 또는 기타 서비스 정보 저장소의 이름을 지정하는 데 상당히 일반적인 접근 방식입니다.

중요한! 작동 중에 이러한 폴더에 대한 쓰기 권한이 필요하므로 Maven을 시스템 폴더에 두지 마십시오. 이는 바이러스 백신 또는 운영 체제에 좋지 않은 관심을 가질 수 있습니다.

버전 3.5 이전의 Maven에는 M2_HOME이라는 환경 변수가 필요했지만 더 이상 필요하지 않습니다.

https://maven.apache.org/configure.html 링크에서 Maven 구성에 대한 자세한 내용을 읽을 수 있습니다.

코멘트
  • 인기
  • 신규
  • 이전
코멘트를 남기려면 로그인 해야 합니다
이 페이지에는 아직 코멘트가 없습니다