CodeGym /Java Blog /무작위의 /4부. Maven 기본 사항
John Squirrels
레벨 41
San Francisco

4부. Maven 기본 사항

무작위의 그룹에 게시되었습니다
이 자료는 "엔터프라이즈 개발 소개" 시리즈의 일부입니다. 이전 기사: 4부. 메이븐 기초 - 1Maven 은 프로젝트를 관리하고 빌드하기 위한 도구로서 Java 프로그래머의 유용한 조수입니다. 프로젝트 구조를 생성하고 필요한 라이브러리를 연결하는 것부터 서버에 제품을 배포하는 것까지 모든 작업 단계에서 개발자의 삶을 더 쉽게 만듭니다. 프레임워크로 작업할 때 Maven을 사용해야 합니다. 그래서 오늘은 주요 기능을 살펴보고 사용 방법을 살펴보겠습니다.

Maven의 단계별 설치

  1. 먼저 Maven을 설치해야 합니다. 이 링크 에서 다운로드하십시오 .

  2. 다음으로 다운로드한 아카이브의 압축을 풀고 M2_HOME 환경 변수를 압축 해제된 아카이브의 위치로 설정합니다. 예를 들어, C:\\Program Files\\maven\\

  3. 모든 항목이 설치되었는지 확인하려면 명령줄에서 다음을 실행합니다.

    mvn 버전

  4. Maven, Java 등의 버전 정보가 표시되면 모든 준비가 완료된 것입니다.

  5. 이제 IntelliJ IDEA를 열고 새 프로젝트를 만듭니다. 첫 번째 창에서 Maven을 선택합니다.

    4부. 메이븐 기초 - 2
  6. "다음"을 클릭하고 나타나는 창을 작성하십시오.

    4부. 메이븐 기초 - 3
  7. 그런 다음 평소와 같이 원하는 위치에 프로젝트를 만듭니다.

    프로젝트가 생성된 후 해당 구조를 기록해 둡니다.

    4부. Maven 기본 - 4
이것은 Maven 프로젝트의 표준 구조 입니다 .
  • src /main/java 폴더에는 Java 클래스가 포함되어 있습니다.
  • src /main/resources 폴더에는 애플리케이션에서 사용하는 리소스(HTML 페이지, 이미지, 스타일 시트 등)가 포함되어 있습니다.
  • src /test 폴더는 테스트용입니다.
또한 pom.xml 파일에 주의하십시오 . Maven을 관리하기 위한 메인 파일 이다 . 전체 프로젝트 설명이 여기에 포함되어 있습니다. 지금은 정보가 많지 않지만 지금 추가하겠습니다.

Maven에서 종속성 관리

"의존성 관리자"라는 문구를 접했을 수 있습니다. Maven은 종속성을 관리하는 방법을 알고 있습니다. Maven 덕분에 필요한 라이브러리를 인터넷에서 검색하고 다운로드한 다음 프로젝트에 연결하는 데 많은 시간을 할애할 필요가 없습니다. 대신 Maven의 종속성 목록에 필요한 라이브러리를 추가하기만 하면 됩니다.

종속성은 pom.xml 파일의 종속성 노드에 지정됩니다.

파일 작업을 단순화하기 위해 프로젝트에 Apache Commons IO 라이브러리가 필요하다고 가정해 보겠습니다. 라이브러리를 추가하기 위해 pom.xml에 다섯 줄을 작성합니다.

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
이제 pom.xml 파일은 다음과 같아야 합니다.

  <?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
그런 다음 IntelliJ IDEA가 종속성을 가져오도록 허용합니다(오른쪽 하단에 대화상자가 표시되어야 함). 이제 라이브러리를 사용할 준비가 되었습니다.

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
모든 후속 종속성도 태그 안에 작성해야 합니다 <dependencies>. 태그 안에 표시해야 하는 라이브러리에 대한 정보를 찾는 방법이 궁금할 수 있습니다 <dependency>. 쉽습니다. "groupId", "artifactId" 및 "version"의 세 가지 매개변수를 항상 설정해야 합니다. 이러한 매개변수를 결정하는 두 가지 방법이 있습니다.
  1. 도서관 홈페이지에서. Apache Commons IO 라이브러리가 필요한 경우 공식 웹사이트로 이동하여 "Dependency Information" 탭을 선택합니다. 필요한 모든 정보가 여기에 있습니다 . 간단히 복사하여 노드에 추가할 수 있습니다 <dependencies>.

  2. Maven 저장소 에서 . 검색창에 "apache commons io"를 입력하면 사용 가능한 모든 버전의 라이브러리가 표시됩니다. 올바른 것을 선택한 후 다음을 복사하십시오.

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    pom.xml에 추가하십시오.

Maven 리포지토리의 유형

Maven 리포지토리에 대해 다시 언급할 가치가 있습니다. 왜냐하면 실제로 원격 (중앙) 리포지토리와 로컬(컴퓨터에 있는) 리포지토리의 두 가지 리포지토리가 있기 때문입니다. 프로젝트에 추가하는 모든 라이브러리는 로컬 저장소에 저장됩니다. Maven은 프로젝트에 필요한 종속성을 추가할 때 먼저 라이브러리가 로컬 저장소에 이미 있는지 여부를 확인합니다. 로컬에서 라이브러리를 찾지 못한 경우에만 원격 저장소에 액세스합니다. 보시다시피 Maven을 사용하여 종속성을 추가할 수 있지만 이것이 할 수 있는 전부는 아닙니다.

Maven을 사용하여 Java 프로젝트 빌드

이 기능은 초보자에게는 무의미해 보일 수 있습니다. IDE가 있는데 이것이 왜 필요한가요? 설명하겠습니다. 첫째, 애플리케이션을 구축해야 하는 서버에는 개발 환경이나 그래픽 인터페이스가 없을 수 있습니다. 둘째, 대규모 프로젝트에서 Maven은 프로젝트 빌드 작업을 더 잘 수행합니다. 따라서 더 이상 고민하지 않고 Maven을 사용하여 애플리케이션을 구축하는 과정을 살펴보겠습니다.

단계

애플리케이션을 구축하는 프로세스는 Maven 프로젝트의 수명 주기라고 하며 여러 단계로 구성됩니다. 오른쪽 상단 모서리에 있는 Maven > example > Lifecycle을 클릭하여 IDEA에서 볼 수 있습니다. 4부. Maven 기본 - 5보시다시피 9개의 단계가 있습니다.
  1. clean — 대상 디렉토리(완료된 아티팩트가 저장되는 위치)에서 컴파일된 모든 파일을 제거합니다.
  2. 유효성 검사 — 프로젝트를 빌드하는 데 필요한 모든 정보가 있는지 확인합니다.
  3. 컴파일 — 소스 코드 파일을 컴파일합니다.
  4. 테스트 — 테스트 시작
  5. package — 컴파일된 파일 패키지(JAR, WAR 등 아카이브)
  6. verify — 패키징된 파일이 준비되었는지 확인합니다.
  7. install — 패키지를 로컬 리포지토리에 배치합니다. 이제 다른 프로젝트에서 외부 라이브러리로 사용할 수 있습니다.
  8. 사이트 — 프로젝트 문서 생성
  9. 배포 — 빌드된 아카이브를 원격 저장소에 복사
모든 단계는 순차적으로 수행됩니다. 예를 들어 네 번째 단계는 1-3단계가 완료될 때까지 시작할 수 없습니다. 단계를 시작하는 방법에는 두 가지가 있습니다.
  • 명령줄을 통해:

    mvn 패키지

    4부. Maven 기본 - 6
  • IntelliJ IDEA 사용:

    4부. 메이븐 기초 - 7

    패키지 단계가 시작되기 전에 유효성 검사, 컴파일 및 테스트 단계가 수행됩니다. 깨끗한 단계는 예외입니다. 프로젝트를 빌드하기 전에 이 단계를 실행하는 것이 좋습니다. 공백으로 구분하여 여러 단계를 나열할 수 있습니다.

    mvn 클린 패키지.

또한 각 단계 에는 배포 전, 배포 후, 정리 전, 정리 후 등의 사전 및 사후 단계가 있지만 거의 사용되지 않습니다. 또한 각 단계에는 목표가 있습니다. 표준 목표는 기본적으로 설정됩니다. 추가 목표는 Maven 플러그인에 의해 추가됩니다. 경우에 따라 단계 중에 추가 기능을 수행해야 할 수도 있습니다. 이를 위한 Maven 플러그인이 있습니다. 공식 플러그인 목록은 Maven 웹사이트 에서 찾을 수 있습니다 . 하지만 타사 웹사이트에서 찾을 수 있는 사용자 정의 플러그인이 많다는 사실을 알아야 합니다. 물론, 특별한 요구 사항이 발생하면 언제든지 사용자 지정 플러그인을 직접 작성할 수 있습니다 .

플러그인

프로젝트에 Maven 플러그인을 추가하려면 종속성을 추가한 방법과 유사하게 <build>및 태그를 사용하여 pom.xml 파일에 해당 설명을 추가해야 합니다. <plugins>예를 들어 모든 외부 라이브러리의 최신 버전을 사용하고 있는지 확인하기 위해 플러그인이 필요하다고 가정합니다. 인터넷을 조금만 검색하면 이 플러그인 과 사용 방법에 대한 지침을 찾을 수 있습니다. groupId, artifactId 및 버전을 설정합시다. 플러그인이 수행해야 하는 목표와 단계를 표시합니다. 우리의 경우 현재 pom.xml의 종속성 검사는 유효성 검사 단계 중에 발생하도록 설정됩니다. 이제 pom.xml 파일은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
우리는 프로젝트를 계속 진행할 수 있습니다. 하지만 Apache Commons IO의 버전을 2.0으로 변경하고 프로젝트를 빌드해보자. 우리는 얻을 것이다

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
여기에 플러그인에 의해 생성된 빌드 오류가 있습니다. 오류 메시지는 버전 2.6을 사용할 수 있을 때 버전 2.0을 사용하고 있음을 나타냅니다. 기본적으로 Maven은 매우 유용한 도구입니다. 처음에는 사용하기 어려울 수 있지만 연습하십시오! Maven을 사용하여 프로젝트를 만들고 잠시 후 최종 결과에 매우 만족할 것입니다. 이 기사에서는 Maven에 대한 많은 세부 정보를 의도적으로 생략했습니다. 우리는 가장 필수적인 부분에 집중했습니다. 그러나 개선에는 한계가 없습니다. 공식 웹사이트 에서 Maven에 대한 자세한 내용을 읽을 수 있습니다 . 파트 5. 서블릿 및 Java 서블릿 API. 간단한 웹 애플리케이션 작성 6부. 서블릿 컨테이너 7부. MVC(Model-View-Controller) 패턴 소개
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION