2장. JBoss EAP에서 Maven 사용

2.1. Maven에 대해 알아보기

2.1.1. Maven 리포지토리 정보

Apache Maven은 Java 애플리케이션 개발에 사용되는 분산 빌드 자동화 도구로 소프트웨어 프로젝트를 생성, 관리 및 빌드합니다. Maven은 Project Object Model 또는 POM이라는 표준 구성 파일을 사용하여 프로젝트를 정의하고 빌드 프로세스를 관리합니다. Poms는 XML 파일을 사용하여 결과 프로젝트 패키징 및 출력의 모듈 및 구성 요소 종속성, 빌드 순서 및 타겟을 설명합니다. 이렇게 하면 프로젝트가 올바르고 일관된 방식으로 구축됩니다.

Maven은 리포지토리를 사용하여 이를 수행합니다. Maven 리포지토리는 Java 라이브러리, 플러그인 및 기타 빌드 아티팩트를 저장합니다. 기본 공용 리포지토리는 Maven 2 중앙 리포지토리이지만, 개발 팀 간에 공통 아티팩트를 공유하는 목표를 사용하여 회사 내에서 개인 및 내부 리포지토리가 될 수 있습니다. 타사에서 리포지토리를 사용할 수도 있습니다. JBoss EAP에는 Jakarta EE 개발자가 JBoss EAP에서 애플리케이션을 빌드하는 데 일반적으로 사용하는 많은 요구 사항이 포함된 Maven 리포지토리가 포함되어 있습니다. 이 리포지토리를 사용하도록 프로젝트를 구성하려면 JBoss EAP Maven 리포지토리 구성을 참조하십시오.

Maven에 대한 자세한 내용은 Welcome to Apache Maven 을 참조하십시오.

Maven 리포지토리에 대한 자세한 내용은 Apache Maven Project - Introduction to Repositories (리포지토리 소개)를 참조하십시오.

2.1.2. Maven POM 파일 정보

프로젝트 오브젝트 모델(POM) 파일은 Maven에서 프로젝트를 빌드하는 데 사용하는 구성 파일입니다. 프로젝트에 대한 정보와 소스, 테스트 및 대상 디렉터리의 위치, 테스트 및 대상 디렉터리, 프로젝트 종속성, 플러그인 리포지토리 및 실행할 수 있는 목표를 포함하여 프로젝트에 대한 정보가 포함된 XML 파일입니다. 또한 버전, 설명, 개발자, 메일링 리스트, 라이센스 등 프로젝트에 대한 추가 세부 정보를 포함할 수 있습니다. pom.xml 파일에는 일부 구성 옵션이 필요하며 다른 모든 옵션은 기본값으로 설정됩니다.

pom.xml 파일의 스키마는 http://maven.apache.org/maven-v4_0_0.xsd 에 있습니다.

POM 파일에 대한 자세한 내용은 Apache Maven 프로젝트 POM 참조를 참조하십시오.

Maven POM 파일의 최소 요구 사항

pom.xml 파일의 최소 요구 사항은 다음과 같습니다.

  • 프로젝트 루트
  • modelVersion
  • groupid - 프로젝트 그룹의 ID
  • artifactId - 아티팩트의 ID (프로젝트)
  • Version - 지정된 그룹의 아티팩트 버전

예제: 기본 pom.xml 파일

기본 pom.xml 파일은 다음과 같을 수 있습니다.

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jboss.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
</project>

2.1.3. Maven 설정 파일 정보

Maven settings.xml 파일에는 Maven에 대한 사용자별 구성 정보가 포함되어 있습니다. 여기에는 개발자 ID, 프록시 정보, 로컬 리포지토리 위치 및 사용자와 관련된 기타 설정과 같은 pom.xml 파일과 함께 배포해서는 안 되는 정보가 포함되어 있습니다.

settings.xml을 찾을 수 있는 위치는 두 가지가 있습니다.

  • Maven 설치에서 다음을 수행합니다. 설정 파일은 $M2_HOME/conf/ 디렉터리에 있습니다. 이러한 설정을 전역 설정이라고 합니다. 기본 Maven 설정 파일은 사용자 설정 파일의 시작점으로 복사하고 사용할 수 있는 템플릿입니다.
  • 사용자 설치에서 다음을 수행합니다. 설정 파일은 ${user.home}/.m2/ 디렉터리에 있습니다. Maven 및 사용자 settings.xml 파일이 모두 있는 경우 내용이 병합됩니다. 중복되는 경우 사용자의 settings.xml 파일이 우선합니다.

예제: Maven 설정 파일

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <!-- Configure the JBoss EAP Maven repository -->
    <profile>
      <id>jboss-eap-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-eap</id>
          <url>file:///path/to/repo/jboss-eap-7.4.0-maven-repository/maven-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-eap-maven-plugin-repository</id>
          <url>file:///path/to/repo/jboss-eap-7.4.0-maven-repository/maven-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!-- Optionally, make the repository active by default -->
    <activeProfile>jboss-eap-maven-repository</activeProfile>
  </activeProfiles>
</settings>

settings.xml 파일의 스키마는 http://maven.apache.org/xsd/settings-1.0.0.xsd 에서 찾을 수 있습니다.

2.1.4. Maven 리포지토리 관리자 정보

리포지토리 관리자는 Maven 리포지토리를 쉽게 관리할 수 있는 툴입니다. 리포지토리 관리자는 다음과 같은 여러 가지 방법으로 유용합니다.

  • 조직과 원격 Maven 리포지토리 간에 프록시를 구성할 수 있는 기능을 제공합니다. 이는 더욱 빠르고 효율적인 배포를 비롯하여 Maven에서 다운로드한 항목에 대한 보다 나은 제어 수준을 비롯하여 여러 가지 이점을 제공합니다.
  • 자체 생성된 아티팩트를 위한 배포 대상을 제공하여 조직 간 다양한 개발 팀 간의 협업이 가능합니다.

Maven 리포지토리 관리자에게 대한 자세한 내용은 모범 사례 - 리포지토리 관리자 사용을 참조하십시오.

일반적으로 사용되는 Maven 리포지토리 관리자
참고

리포지토리 관리자가 일반적으로 사용되는 엔터프라이즈 환경에서 Maven은 이 관리자를 사용하여 모든 프로젝트의 모든 아티팩트를 쿼리해야 합니다. Maven은 선언된 모든 리포지토리를 사용하여 누락된 아티팩트를 찾기 때문에 원하는 항목을 찾을 수 없는 경우 리포지토리 중앙에서 해당 리포지토리(기본 제공 상위 POM에 정의되어 있음)에서 찾습니다. 이 중앙 위치를 재정의하려면 기본 리포지토리가 중앙 리포지토리가 될 수 있도록 정의를 중앙 으로 추가할 수 있습니다. 이 작업은 이미 구축된 프로젝트에 적합하지만, 클린 또는 'new' 프로젝트의 경우 재활용 종속성이 생성되기 때문에 문제가 발생합니다.