5.3. Service Registry Maven 플러그인을 사용하여 아티팩트 참조 추가


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

이 섹션에서는 Service Registry Maven 플러그인을 사용하여 서비스 레지스트리에 저장된 간단한 Avro 스키마 아티팩트에 아티팩트 참조를 등록하는 간단한 예를 보여줍니다. 이 예에서는 다음 Exchange 스키마 아티팩트가 서비스 레지스트리에 이미 생성된 것으로 가정합니다.

교환 스키마

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

이 예제에서는 중첩된 Exchange 스키마 아티팩트에 대한 참조를 포함하는 skopeo Key 스키마 아티팩트를 생성합니다.

TRADEKEY 스키마 중첩 Exchange 스키마

{
  "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

사전 요구 사항

  • 클라이언트 애플리케이션에 대한 Maven 프로젝트를 생성했습니다. 자세한 내용은 Apache Maven 설명서 를 참조하십시오.
  • Exchange 스키마 아티팩트가 서비스 레지스트리에 이미 생성되어 있습니다.

절차

  1. apicurio-registry-maven-plugin 을 사용하도록 Maven pom.xml 파일을 업데이트하여 Exchange 스키마에 대한 중첩된 참조가 포함된 skopeo Key 스키마를 등록합니다.

    <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
                            </file>
                            <ifExists>RETURN_OR_UPDATE</ifExists>
                            <canonicalize>true</canonicalize>
                            <references>
                                <reference> 
    5
    
                                    <name>com.kubetrade.schema.common.Exchange</name>
                                    <groupId>test-group</groupId>
                                    <artifactId>Exchange</artifactId>
                                    <version>2.0</version>
                                    <type>AVRO</type>
                                    <file>
                                        ${project.basedir}/src/main/resources/schemas/Exchange.avsc
                                    </file>
                                    <ifExists>RETURN_OR_UPDATE</ifExists>
                                    <canonicalize>true</canonicalize>
                                </reference>
                            </references>
                        </artifact>
                    </artifacts>
                </configuration>
            </execution>
        </executions>
    </plugin>
    Copy to Clipboard Toggle word wrap
    1. 스키마 아티팩트를 레지스트리에 업로드하는 실행 대상으로 register 를 지정합니다.
    2. ../apis/registry/v2 끝점을 사용하여 서비스 레지스트리 URL을 지정합니다.
    3. 인증이 필요한 경우 인증 서버 및 클라이언트 자격 증명을 지정할 수 있습니다.
    4. 서비스 레지스트리 아티팩트 그룹 ID를 지정합니다. 고유한 그룹 ID를 사용하지 않으려면 기본 그룹을 지정할 수 있습니다.
    5. 그룹 ID, 아티팩트 ID, 버전, 유형 및 위치를 사용하여 서비스 레지스트리 아티팩트 참조를 지정합니다. 이러한 방식으로 여러 아티팩트 참조를 등록할 수 있습니다.
  2. 예를 들어 mvn package 명령을 사용하여 Maven 프로젝트를 빌드합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat