programing

메이븐은 이론적으로나 실제로 어떤 일을 합니까?언제 사용할 가치가 있습니까?

copysource 2022. 8. 10. 21:15
반응형

메이븐은 이론적으로나 실제로 어떤 일을 합니까?언제 사용할 가치가 있습니까?

저는 연습을 위해 자바 프로젝트를 시작하려고 합니다.메이븐에 대해 읽은 적은 있지만, 실제로 언제 사용해야 하는지 잘 모르겠습니다.

실용적인 팁을 좀 주시겠어요?메이븐이 많이 도와주나요?메이븐이 실제로 제 프로젝트에서 하는 일은 무엇입니까?

기능

Maven은 "빌드 관리 툴"로, 이 툴은 고객의 비즈니스 요구에 대한.java파일이 컴파일되다.class, 패키징 대상.jar(또는.war또는.ear) 파일, (사전/사후) 도구와 함께 다운로드, 관리 및 프로젝트 구축에 필요한 기타 모든 종류의 작업.C/C++의 Apache Ant, Gradle 또는 Makefiles와 비슷하지만 필요한 라이브러리 다운로드 및 설치 등 기타 일반적인 작업을 통합하여 툴이나 스크립트를 추가하지 않아도 되도록 완전히 자급자족하려고 합니다.

또, 「포터빌리티 구축」테마를 중심으로 설계되어 있기 때문에, 1대의 컴퓨터에서는 동작하지 않고, 다른 컴퓨터에서는 동작하지 않는 빌드 스크립트로 같은 코드를 사용하는 등의 문제가 발생하지 않습니다(이것은 이미 알려진 문제이며, 델파이 애플리케이션을 컴파일 할 수 없었기 때문에 Windows 98 머신의 VM이 존재하고 있습니다).따라서 IDE에서 생성된 Ant 스크립트를 다른 IDE로 Import하기 어렵기 때문에 서로 다른 IDE를 사용하는 사용자 간에 프로젝트를 수행하는 것도 최선의 방법입니다.그러나 현재 모든 IDE는 Maven(IntelliJ, Eclipse, NetBeans)을 이해하고 지원합니다.Maven이 마음에 들지 않더라도 다른 모든 최신 빌드 도구의 참조 포인트가 됩니다.

사용하는 이유

Maven에는 매우 좋은 세 가지가 있습니다.

  1. Maven은 사용하는 라이브러리와 사용하는 라이브러리를 모두 자동으로 다운로드합니다.이것은 매우 좋고, 많은 도서관을 터무니없이 쉽게 다룰 수 있습니다.이것에 의해, 「의존 지옥을 회피할 수 있습니다.아파치 앤트의 아이비와 비슷하다.

  2. 기본적으로 수행할 태스크를 정의할 필요가 없도록 "Convention over Configuration"을 사용합니다.Ant 또는 Makefile에서처럼 "컴파일", "테스트", "패키지" 또는 "깨끗한" 단계를 작성할 필요가 없습니다.메이븐이 예상하는 곳에 파일을 놓으면 바로 작동될 겁니다

  3. 또한 Maven은 JAXB를 사용하여 XSD 스키마에서 Java 클래스를 생성하는 것부터 Cobertura로 테스트 범위를 측정하는 것까지 많은 일상적인 작업을 처리할 수 있는 멋진 플러그인을 많이 가지고 있습니다.여기에 추가하기만 하면 됩니다.pom.xml원하는 모든 것과 통합할 수 있습니다.

초기 학습곡선은 가파르지만 (거의) 모든 전문 자바 개발자는 Maven을 사용하거나 사용하기를 희망합니다.Maven은 모든 프로젝트에 사용해야 합니다.다만, 익숙해지는 데 시간이 걸려도 놀라지 않고, 때로는 수작업으로 할 수 있으면 좋겠다고 생각할 수도 있습니다.새로운 것을 배우는 것은 때때로 상처를 주기 때문입니다.그러나 Maven에 익숙해지면 빌드 관리에 거의 시간이 걸리지 않는다는 것을 알게 될 것입니다.

시작 방법

가장 좋은 시작은 "Maven in 5 Minutes"입니다.필요한 모든 파일과 폴더를 셋업하여 코드화할 수 있는 프로젝트부터 시작합니다(예, 적어도 처음에는 Quickstart archtype을 사용하는 것이 좋습니다).

시작하면 도구의 사용 방법을 더 잘 이해할 수 있을 것입니다.그러나 "Better Builds with Maven"이 작동 방식을 가장 철저하게 이해할 수 있는 장소이기 때문에 "Maven: 완전 레퍼런스」는, 보다 최신입니다.첫 번째 것을 읽으면 이해가 되고 두 번째 것을 참고하세요.

Sonatype 문서:

이 질문에 대한 답은 당신의 관점에 달려 있습니다.대부분의 Maven 사용자는 Maven을 "빌드 도구"라고 부릅니다. 이는 소스 코드에서 배포 가능한 아티팩트를 구축하는 데 사용되는 도구입니다.빌드 엔지니어 및 프로젝트 매니저는 Maven을 보다 포괄적인 프로젝트 관리 도구라고 부를 수 있습니다.뭐가 다른데?Ant와 같은 빌드 도구는 전처리, 컴파일, 패키징, 테스트 및 배포에만 중점을 두고 있습니다.Maven과 같은 프로젝트 관리 도구는 빌드 도구에서 찾을 수 있는 다양한 기능을 제공합니다.Maven은 빌드 기능을 제공할 뿐만 아니라 보고서를 실행하고 웹 사이트를 생성하며 작업 팀 구성원 간의 커뮤니케이션을 촉진할 수도 있습니다.

Maven의 성능을 이해하기 위해 Sonatype 문서를 살펴보고 사용 가능한 플러그인을 살펴볼 것을 강력히 권장합니다.

아주 간단히 말해서, 개미보다 더 높은 개념 수준에서 작동합니다.Ant를 사용하면 빌드할 파일 및 리소스 세트를 지정한 다음 함께 jarr하는 방법을 지정하고 clean/compile/jar에서 발생하는 순서를 지정할 수 있습니다.Maven에게 이것은 모두 암묵적이다.Maven은 특정 장소에서 당신의 파일을 찾기를 기대하며, 그것으로 자동으로 작동하게 됩니다.따라서 Maven과 함께 프로젝트를 설정하는 것이 훨씬 간단하지만, Maven의 규칙을 따라야 합니다!

Maven빌드 도구입니다.와 함께Ant또는Gradle이다Java구축용 도구입니다.
만약 당신이 자바의 초보자인 경우, 단지 당신의 IDE를 사용하여 빌드하는 것 뿐이지만, 그 이후로는Maven학습 곡선이 가파르다.

언급URL : https://stackoverflow.com/questions/13335351/what-does-maven-do-in-theory-and-in-practice-when-is-it-worth-to-use-it

반응형