2.3. Maven 리포지토리 사용


2.3.1. JBoss EAP Maven 리포지토리 구성

개요

프로젝트에서 JBoss EAP Maven 리포지토리를 사용하도록 Maven에 대한 두 가지 접근법이 있습니다.

Maven 설정을 사용하여 JBoss EAP Maven 리포지토리 구성

권장되는 접근 방식입니다. 공유 서버의 리포지토리 관리자 또는 리포지토리와 함께 사용되는 Maven 설정은 프로젝트의 제어 및 관리 용이성을 제공합니다. 설정은 다른 미러를 사용하여 프로젝트 파일을 변경하지 않고 특정 리포지토리의 모든 조회 요청을 저장소 관리자로 리디렉션하는 기능도 제공합니다. 미러에 대한 자세한 내용은 http://maven.apache.org/guides/mini/guide-mirror-settings.html 의 내용을 참조하십시오.

프로젝트 POM 파일에 리포지토리 구성이 포함되지 않는 한 이 구성 방법은 모든 Maven 프로젝트에 적용됩니다.

이 섹션에서는 Maven 설정을 구성하는 방법에 대해 설명합니다. Maven 설치 글로벌 설정 또는 사용자의 설치 설정을 구성할 수 있습니다.

Maven 설정 파일 구성

  1. 운영 체제에 대한 Maven settings.xml 파일을 찾습니다. 일반적으로 ${user.home}/.m2/ 디렉터리에 있습니다.

    • Linux 또는 Mac의 경우 ~/.m2/입니다.
    • Windows의 경우 \Documents 및 Settings\.m2\ 또는 \Users\.m2\입니다.
  2. settings.xml 파일을 찾지 못하는 경우 ${user.home}/ .m2/conf/ 디렉터리에서 settings. xml 파일을 ${user.home}/.m2/ 디렉터리에 복사합니다.
  3. 다음 XML을 settings.xml 파일의 <profiles> 요소에 복사합니다. JBoss EAP 리포지토리의 URL을 확인하고 JBOSS_EAP_REPOSITORY_URL 을 이 리포지토리로 교체합니다.

    <!-- Configure the JBoss Enterprise Maven repository -->
    <profile>
      <id>jboss-enterprise-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-enterprise-maven-repository</id>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-enterprise-maven-repository</id>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    다음은 온라인 JBoss EAP Maven 리포지토리에 액세스하는 구성의 예입니다.

    <!-- Configure the JBoss Enterprise Maven repository -->
    <profile>
      <id>jboss-enterprise-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-enterprise-maven-repository</id>
          <url>https://maven.repository.redhat.com/ga/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-enterprise-maven-repository</id>
          <url>https://maven.repository.redhat.com/ga/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  4. 다음 XML을 settings.xml 파일의 <activeProfiles> 요소에 복사합니다.

    <activeProfile>jboss-enterprise-maven-repository</activeProfile>
  5. Red Hat CodeReady Studio가 실행되는 동안 settings.xml 파일을 수정하면 사용자 설정을 새로 고쳐야 합니다.

    1. 메뉴에서 기본 설정을 선택합니다.
    2. Preferences(기본 설정 ) 창에서 Maven 을 확장하고 User Settings (사용자 설정)를 선택합니다.
    3. Update Settings (설정 업데이트) 버튼을 클릭하여 Red Hat CodeReady Studio에서 Maven 사용자 설정을 새로 고칩니다.
중요

Maven 리포지토리에 오래된 아티팩트가 포함된 경우 프로젝트를 빌드하거나 배포할 때 다음 Maven 오류 메시지 중 하나가 발생할 수 있습니다.

  • 누락된 아티팩트 ARTIFACT_NAME
  • [오류] 프로젝트 PROJECT_NAME에서 목표를 실행하지 못했습니다. PROJECT_NAME 에 대한 종속성을 확인할 수 없습니다.

이 문제를 해결하려면 캐시된 버전의 로컬 리포지토리를 삭제하여 최신 Maven 아티팩트를 강제로 다운로드합니다. 캐시된 리포지토리는 ${user.home}/.m2/repository/에 있습니다.

프로젝트 POM을 사용하여 JBoss EAP Maven 리포지토리 구성
주의

구성된 프로젝트의 전역 및 사용자 Maven 설정을 재정의하므로 이 구성 방법은 피해야 합니다.

POM 프로젝트를 사용하여 리포지토리를 구성하기로 결정한 경우 신중하게 계획해야 합니다. Maven이 누락된 아티팩트에 대해 외부 리포지토리를 쿼리해야 하고 이로 인해 빌드 프로세스가 느려지기 때문에 절대 포함된 POM은 이러한 유형의 구성에서 문제가 됩니다. 또한 아티팩트가 들어오는 위치를 제어하지 못하도록 할 수도 있습니다.

참고

리포지토리의 URL은 리포지토리가 있는 위치(파일 시스템 또는 웹 서버의 위치)에 따라 달라집니다. 리포지토리 설치 방법에 대한 자세한 내용은 다음을 참조하십시오. JBoss EAP Maven 리포지토리 설치. 다음은 각 설치 옵션에 대한 예입니다.

파일 시스템
file:///path/to/repo/jboss-eap-maven-repository
Apache 웹 서버
http://intranet.acme.com/jboss-eap-maven-repository/
Nexus 리포지토리 관리자
https://intranet.acme.com/nexus/content/repositories/jboss-eap-maven-repository

프로젝트의 POM 파일 구성

  1. 텍스트 편집기에서 프로젝트의 pom.xml 파일을 엽니다.
  2. 다음 리포지토리 구성을 추가합니다. 파일에 이미 <repositories> 구성이 있는 경우 <repository> 요소를 추가합니다. <url> 을 실제 리포지토리 위치로 변경하십시오.

    <repositories>
       <repository>
          <id>jboss-eap-repository-group</id>
          <name>JBoss EAP Maven Repository</name>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <layout>default</layout>
          <releases>
             <enabled>true</enabled>
             <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
             <enabled>true</enabled>
             <updatePolicy>never</updatePolicy>
          </snapshots>
       </repository>
    </repositories>
  3. 다음 플러그인 리포지토리 구성을 추가합니다. 파일에 이미 <pluginRepositories> 구성이 있는 경우 <pluginRepository> 요소를 추가합니다.

    <pluginRepositories>
       <pluginRepository>
          <id>jboss-eap-repository-group</id>
          <name>JBoss EAP Maven Repository</name>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <releases>
             <enabled>true</enabled>
          </releases>
          <snapshots>
             <enabled>true</enabled>
          </snapshots>
       </pluginRepository>
    </pluginRepositories>
JBoss EAP 리포지토리의 URL 확인

리포지토리 URL은 리포지토리가 있는 위치에 따라 다릅니다. 다음 리포지토리 위치를 사용하도록 Maven을 구성할 수 있습니다.

  • 온라인 JBoss EAP Maven 리포지토리를 사용하려면 다음 URL을 지정합니다. https://maven.repository.redhat.com/ga/
  • 로컬 파일 시스템에 설치된 JBoss EAP Maven 리포지토리를 사용하려면 리포지토리를 다운로드한 다음 URL에 대한 로컬 파일 경로를 사용해야 합니다. 예: file:///path/to/repo/jboss-eap-7.4.0-maven-repository/maven-repository/
  • Apache 웹 서버에 리포지토리를 설치하는 경우 리포지토리 URL은 다음과 유사합니다. http://intranet.acme.com/jboss-eap-7.4.0-maven-repository/maven-repository/
  • Nexus Repository Manager를 사용하여 JBoss EAP Maven 리포지토리를 설치하는 경우 URL은 다음과 같습니다. https://intranet.acme.com/nexus/content/repositories/jboss-eap-7.4.0-maven-repository/maven-repository/
참고

원격 리포지토리는 HTTP 서버의 리포지토리에 http:// 와 같은 일반 프로토콜을 사용하거나 파일 서버의 리포지토리에 file:// 와 같은 일반 프로토콜을 사용하여 액세스합니다.

2.3.2. Red Hat CodeReady Studio에서 사용할 Maven 구성

Red Hat JBoss Enterprise Application Platform에 애플리케이션을 빌드하고 배포하는 데 필요한 아티팩트 및 종속성은 공용 리포지토리에 호스팅됩니다. 애플리케이션을 빌드할 때 이 리포지토리를 사용하도록 Maven을 지시해야 합니다. 이 섹션에서는 Red Hat CodeReady Studio를 사용하여 애플리케이션을 빌드 및 배포하려는 경우 Maven을 구성하는 단계를 설명합니다.

Maven은 Red Hat CodeReady Studio와 함께 배포되므로 별도로 설치할 필요가 없습니다. 그러나 JBoss EAP에 배포하려면 Java EE Web Project 마법사에서 사용하도록 Maven을 구성해야 합니다. 아래 절차에서는 Red Hat CodeReady Studio 내에서 Maven 구성 파일을 편집하여 JBoss EAP와 함께 사용하도록 Maven을 구성하는 방법을 보여줍니다.

참고

Red Hat CodeReady Studio에서 Target 런타임7.4 또는 이후 런타임 버전으로 설정하면 프로젝트가 Jakarta EE 8 사양과 호환됩니다.

Red Hat CodeReady Studio에서 Maven 구성

  1. Window Preferences 를 클릭하고 JBoss Tools 를 확장한 다음 JBoss Maven Integration 을 선택합니다.

    그림 2.1. 기본 설정 창의 JBoss Maven Integration Pane

    기본 설정 창의 JBoss Maven Integration Pane
  2. Configure Maven Repositories(Maven 리포지토리 구성)를 클릭합니다.
  3. Add Repository (리포지토리 추가)를 클릭하여 JBoss Enterprise Maven 리포지토리를 구성합니다. 다음과 같이 Add Maven Repository(Maven 리포지토리 추가) 대화 상자를 완료합니다.

    1. Profile ID,Repository ID, Repository Name (리포지토리 이름 ) 값을 jboss-ga-repository 로 설정합니다.
    2. 리포지토리 URL 값을 http://maven.repository.redhat.com/ga 로 설정합니다.
    3. Active by default (기본적으로 활성화) 확인란을 클릭하여 Maven 리포지토리를 활성화합니다.
    4. OK(확인)를 클릭합니다.

      그림 2.2. Maven 리포지토리 추가

      Maven 리포지토리 추가
  4. 리포지토리를 검토하고 Finish (완료)를 클릭합니다.
  5. "Are you have to update the file MAVEN_HOME/settings.xml?"라는 메시지가 표시됩니다. Yes (예)를 클릭하여 설정을 업데이트합니다. OK(확인 )를 클릭하여 대화 상자를 닫습니다.

이제 JBoss EAP Maven 리포지토리가 Red Hat CodeReady Studio와 함께 사용하도록 구성됩니다.

2.3.3. 프로젝트 종속성 관리

이 섹션에서는 Red Hat JBoss Enterprise Application Platform용 BSM(Bill of Materials) POM의 사용법에 대해 설명합니다.

BOM은 지정된 모듈에 대한 모든 런타임 종속성 버전을 지정하는 Maven pom.xml (POM) 파일입니다. 버전 종속성은 파일의 종속성 관리 섹션에 나열됩니다.

프로젝트는 프로젝트 pom.xml 파일의 종속성 관리 섹션에 groupId:artifactId:version: v(groupId:artifactId:version)를 추가하고 <scope>import</scope> 및 <type&gt;pom</type> 요소 값을 지정하여 BOM을 사용합니다.

참고

대부분의 경우 프로젝트 POM 파일의 종속 항목은 제공된 범위를 사용합니다. 이러한 클래스는 런타임 시 애플리케이션 서버에서 제공하며 사용자 애플리케이션으로 패키징할 필요가 없기 때문입니다.

지원되는 Maven Artifacts

제품 빌드 프로세스의 일환으로 JBoss EAP의 모든 런타임 구성 요소는 제어된 환경의 소스에서 빌드됩니다. 이렇게 하면 바이너리 아티팩트에 악성 코드가 포함되어 있지 않으며 제품 수명 동안 지원할 수 있습니다. 이러한 아티팩트는 -redhat 버전 한정자(예: 1.0.0-redhat -1) 로 쉽게 식별할 수 있습니다.

지원되는 아티팩트를 빌드 구성 pom.xml 파일에 추가하면 빌드에서 로컬 빌드 및 테스트에 올바른 바이너리 아티팩트를 사용하고 있는지 확인합니다. -redhat 버전이 있는 아티팩트는 지원되는 공용 API의 일부인 것은 아니며 향후 개정판에서는 변경될 수 있습니다. 지원되는 공개 API에 대한 자세한 내용은 릴리스에 포함된 Javadoc 설명서 를 참조하십시오.

예를 들어 지원되는 Hibernate 버전을 사용하려면 다음과 유사한 버전을 빌드 구성에 추가합니다.

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>5.3.1.Final-redhat-1</version>
  <scope>provided</scope>
</dependency>

위의 예에는 <version/> 필드의 값이 포함되어 있습니다. 그러나 Maven 종속성 관리를 사용하여 종속성 버전을 구성하는 것이 좋습니다.

종속성 관리

Maven에는 빌드 전체에서 직접 및 전이적 종속성 버전을 관리하는 메커니즘이 포함되어 있습니다. 종속성 관리 사용에 대한 일반적인 정보는 Apache Maven 프로젝트를 참조하십시오. 종속성 메커니즘 소개.

하나 이상의 지원 Red Hat 종속 항목을 빌드에 직접 사용하면 빌드의 모든 이전 종속성이 완전히 지원되는 Red Hat 아티팩트를 보장하지 않습니다. Maven 빌드에서는 Maven 중앙 리포지토리 및 기타 Maven 리포지토리의 아티팩트 소스를 혼합하여 사용하는 것이 일반적입니다.

JBoss EAP Maven 리포지토리에 종속성 관리 BOM이 포함되어 있으며, 지원되는 모든 JBoss EAP 바이너리 아티팩트를 지정합니다. 이 BOM은 빌드에서 Maven이 빌드의 모든 직접 및 전이적 종속성에 대해 지원되는 JBoss EAP 종속성에 우선 순위를 정하도록 할 수 있습니다. 즉, 이전 종속성은 해당하는 경우 올바른 지원 종속성 버전으로 관리됩니다. 이 BOM의 버전은 JBoss EAP 릴리스 버전과 일치합니다.

<dependencyManagement>
  <dependencies>
    ...
    <dependency>
      <groupId>org.jboss.bom</groupId>
      <artifactId>eap-runtime-artifacts</artifactId>
      <version>7.4.0.GA</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>
참고

JBoss EAP 7에서는 이 BOM의 이름이 eap6-supported-artifacts에서 eap- runtime-artifacts 로 변경되었습니다. 이 변경의 목적은 이 POM의 아티팩트가 JBoss EAP 런타임의 일부이지만 지원되는 공용 API의 일부인 것을 더 명확히 하기 위한 것입니다. 일부 JAR에는 내부 API 및 기능이 포함되어 있으며, 릴리스마다 변경될 수 있습니다.

JBoss EAP Jakarta EE 사양 BOM

jboss-jakartaee-8.0 BOM에는 JBoss EAP에서 사용하는 Jakarta EE 사양 API JAR이 포함되어 있습니다.

프로젝트에서 이 BOM을 사용하려면 먼저 POM 파일의 dependencyManagement 섹션에 jboss-jakartaee-8.0 BOM에 대한 종속성을 추가하고 groupIdorg.jboss.spec 을 지정한 다음 애플리케이션에 필요한 특정 API에 대한 종속성을 추가합니다. API가 jboss-jakartaee-8.0 BOM에 포함되어 있기 때문에 이러한 종속성에는 버전이 필요하지 않으며 제공된 범위를 사용합니다.

다음 예제에서는 jboss-jakartaee-8.0 BOM의 1.0.0.Alpha1 버전을 사용하여 서블릿 및 Jakarta Server Pages API에 대한 종속성을 추가합니다.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jboss.spec</groupId>
      <artifactId>jboss-jakartaee-8.0</artifactId>
      <version>1.0.0.Alpha1</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.jboss.spec.javax.servlet</groupId>
    <artifactId>jboss-servlet-api_4.0_spec</artifactId>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>org.jboss.spec.javax.servlet.jsp</groupId>
    <artifactId>jboss-jsp-api_2.3_spec</artifactId>
    <scope>provided</scope>
  </dependency>
  ...
</dependencies>
참고

JBoss EAP는 대부분의 제품 구성 요소의 API에 BOM을 패키징하고 제공합니다. 이러한 BOM 중 상당수는 org.jboss.bom 이라는 groupId 가 있는 더 큰 jboss-eap-jakartaee8 BOM로 편리하게 패키징됩니다. groupIdorg.jboss.specjboss-jakartaee-8.0 BOM이 이 대형 BOM에 포함됩니다. 즉, 이 BOM에 패키지된 추가 JBoss EAP 종속성을 사용하는 경우 jboss-jakartaee -8.0 및 기타 BOM 종속성을 별도로 추가하지 않고 프로젝트의 POM 파일에 하나의 jboss-eap-jakartaee 8 BOM만 추가하면 됩니다.

애플리케이션 개발에 사용 가능한 JBoss EAP BOM

다음 표에는 애플리케이션 개발에 사용할 수 있는 Maven BOM이 나열되어 있습니다.

Expand
표 2.1. JBoss BOMs
BOM Artifact ID사용 사례

eap-runtime-artifacts

지원되는 JBoss EAP 런타임 아티팩트.

jboss-eap-jakartaee8

지원되는 JBoss EAP Jakarta EE 8 API 및 추가 JBoss EAP API JAR.

jboss-eap-jakartaee8-with-tools

jboss-eap-jakartaee8 및 Arquillian과 같은 개발 툴.

참고

JBoss EAP 6의 이러한 BOM은 대부분의 사용 사례에서 더 간단하게 사용할 수 있도록 BOM이 더 적은 수로 통합되었습니다. 이제 Hibernate, 로깅, 트랜잭션, 메시징 및 기타 공용 API JAR이 각 사례에 별도의 BOM이 아닌 jboss-eap-jakartaee8 BOM에 포함됩니다.

다음 예제에서는 jboss-eap-jakartaee8 BOM의 7.4.0.GA 버전을 사용합니다.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jboss.bom</groupId>
      <artifactId>jboss-eap-jakartaee8</artifactId>
      <version>7.4.0.GA</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <scope>provided</scope>
  </dependency>
  ...
</dependencies>
JBoss EAP 클라이언트 BOM

클라이언트 BOM은 종속성 관리 섹션을 생성하거나 종속성을 정의하지 않습니다. 대신, 다른 BOM의 집계이며 원격 클라이언트 사용 사례에 필요한 종속성 집합을 패키징하는 데 사용됩니다.

The wildfly-ejb-client-bom,wildfly-jms-client-bom, and wildfly-jaxws-client-bomjboss-eap-jakartaee8 BOM에서 관리하므로 프로젝트 종속 항목에서 버전을 관리할 필요가 없습니다.

다음은 프로젝트에 wildfly-ejb-client-bom,wildfly- jms-client-bom 및 wildfly- jaxws-client-bom 종속성을 추가하는 방법의 예입니다.

<dependencyManagement>
  <dependencies>
    <!-- JBoss stack of the Jakarta EE APIs and related components.  -->
    <dependency>
      <groupId>org.jboss.bom</groupId>
      <artifactId>jboss-eap-jakartaee8</artifactId>
      <version>7.4.0.GA</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
  ...
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.jboss.eap</groupId>
    <artifactId>wildfly-ejb-client-bom</artifactId>
    <type>pom</type>
  </dependency>
  <dependency>
    <groupId>org.jboss.eap</groupId>
    <artifactId>wildfly-jms-client-bom</artifactId>
    <type>pom</type>
  </dependency>
  <dependency>
    <groupId>org.jboss.eap</groupId>
    <artifactId>wildfly-jaxws-client-bom</artifactId>
    <type>pom</type>
  </dependency>
  ...
</dependencies>

Maven 종속성 및 BOM POM 파일에 대한 자세한 내용은 Apache Maven Project - Introduction to Dependency Mechanism을 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동