5.5. Service Registry Maven 플러그인을 사용하여 자동으로 아티팩트 참조 추가


Apache Avro, Google Protobuf 및 JSON 스키마와 같은 서비스 레지스트리 아티팩트 유형은 한 아티팩트 파일의 아티팩트 참조를 다른 아티팩트로 포함할 수 있습니다. 재사용 가능한 스키마 또는 API 아티팩트를 정의한 다음 아티팩트 참조의 여러 위치에서 참조할 수 있습니다.

단일 아티팩트를 지정하고 동일한 디렉터리에 있는 아티팩트에 대한 모든 참조를 자동으로 감지하고 해당 참조를 자동으로 등록하도록 Service Registry Maven 플러그인을 구성할 수 있습니다.

이 섹션에서는 Maven 플러그인을 사용하여 Avro 스키마를 등록하고 아티팩트 참조를 간단한 스키마 아티팩트에 자동으로 탐지하고 등록하는 간단한 예를 보여줍니다. 이 예에서는 상위 tradeKey 아티팩트와 중첩된 교환 스키마 아티팩트가 모두 동일한 디렉터리에서 사용 가능한 것으로 가정합니다.

교환 스키마에 대한 중첩된 참조가 있는 tradeKey 스키마

{
  "namespace": "com.kubetrade.schema.trade",
  "type": "record",
  "name": "TradeKey",
  "fields": [
    {
      "name": "exchange",
      "type": "com.kubetrade.schema.common.Exchange"
    },
    {
      "name": "key",
      "type": "string"
    }
  ]
}
Copy to Clipboard Toggle word wrap

교환 스키마

{
  "namespace": "com.kubetrade.schema.common",
  "type": "enum",
  "name": "Exchange",
  "symbols" : ["GEMINI"]
}
Copy to Clipboard Toggle word wrap

사전 요구 사항

  • 클라이언트 애플리케이션에 대한 Maven 프로젝트를 생성했습니다. 자세한 내용은 Apache Maven 설명서 를 참조하십시오.
  • tradeKey 스키마 아티팩트와 중첩된 교환 스키마 아티팩트 파일은 둘 다 동일한 디렉터리에 있습니다.

절차

  1. apicurio-registry-maven-plugin 을 사용하여 다음과 같이 교환 스키마에 중첩된 참조가 포함된 tradeKey 스키마를 등록하도록 Maven pom.xml 파일을 업데이트합니다.

    <plugin>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-maven-plugin</artifactId>
        <version>${apicurio-registry.version}</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>register</goal> 
    1
    
                </goals>
                <configuration>
                    <registryUrl>MY-REGISTRY-URL/apis/registry/v2</registryUrl> 
    2
    
                    <authServerUrl>MY-AUTH-SERVER</authServerUrl>
                    <clientId>MY-CLIENT-ID</clientId>
                    <clientSecret>MY-CLIENT-SECRET</clientSecret> 
    3
    
                    <artifacts>
                        <artifact>
                            <groupId>test-group</groupId> 
    4
    
                            <artifactId>TradeKey</artifactId>
                            <version>2.0</version>
                            <type>AVRO</type>
                            <file>
                                ${project.basedir}/src/main/resources/schemas/TradeKey.avsc 
    5
    
                            </file>
                            <ifExists>RETURN_OR_UPDATE</ifExists>
                            <canonicalize>true</canonicalize>
                            <analyzeDirectory>true</analyzeDirectory> 
    6
    
                        </artifact>
                    </artifacts>
                </configuration>
            </execution>
        </executions>
    </plugin>
    Copy to Clipboard Toggle word wrap
    1
    서비스 레지스트리에 스키마 아티팩트를 업로드하려면 register 를 실행 목표로 지정합니다.
    2
    ../apis/registry/v2 끝점을 사용하여 서비스 레지스트리 URL을 지정합니다.
    3
    인증이 필요한 경우 인증 서버 및 클라이언트 자격 증명을 지정할 수 있습니다.
    4
    참조가 포함된 상위 아티팩트 그룹 ID를 지정합니다. 고유한 그룹 ID를 사용하지 않으려면 기본 그룹을 지정할 수 있습니다.
    5
    상위 아티팩트 파일의 위치를 지정합니다. 참조된 모든 아티팩트도 동일한 디렉터리에 있어야 합니다.
    6
    동일한 디렉터리의 아티팩트에 대한 모든 참조를 자동으로 탐지하고 등록하려면 < analyzeDirectory > 옵션을 true로 설정합니다. 이러한 방식으로 여러 아티팩트 참조를 등록할 수 있습니다.
  2. 예를 들어 mvn package 명령을 사용하여 Maven 프로젝트를 빌드합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat