スキーマの Maven プロジェクトを生成します

スキーマの新しい Maven プロジェクトを生成するには mvn archetype:generate ' 次のパラメータを使用してを実行します

Linux
mvn archetype:generate -DarchetypeGroupId=com.here.platform.schema \
                       -DarchetypeArtifactId=project_archetype \
                       -DarchetypeVersion=2.1.48 \
                       -Dversion=1.0.0 \
                       -DmajorVersion=1
mvn archetype:generate -DarchetypeGroupId=com.here.platform.schema ^
                       -DarchetypeArtifactId=project_archetype ^
                       -DarchetypeVersion=2.1.48 ^
                       -Dversion=1.0.0 ^
                       -DmajorVersion=1

プロンプトが表示されたら、次の Maven 原型パラメータを定義します。

  • groupId: などのインターネットドメイン名が逆になっています com.your-domain.some-product.schema

    メモ

    通常、groupIdには、com.some-company.automated-driving.schemaなどgroupIdへのチーム / 製品の階層を含める必要があります。 このようにして、異なるチームがスキーマを個別に管理できます。

    スキーマを Artifact Service に展開すると、そのサービス groupId は組織によって予約されており、この場合は他のレルムで再利用できません。 したがって、com.examplecom.here.schema、およびcom.here.exampleなどの汎用groupId値を指定 すると、スキーマをアーティファクトサービスリポジトリにアップロードできなくなり、カタログで使用したり、他のユーザーと共有したりできなくなります。

  • artifactId: など、プロジェクトにパッケージ化されているスキーマタイプに固有の識別子 road_topology。 Archetype は、road_topology_v1などのartifactIdにデータスキーマのメジャーバージョンを追加します。

  • version: スキーマプロジェクトのバージョン。 SemVer 2.0.0 規格に準拠した 3 つの部分から成るセマンティックバージョン管理を使用します。オプションで、リビジョンも使用できます。

  • package: Protobuf 、 Java 、および Scala のパッケージ名で使用される識別子。 この値を指定しない場合 groupId は、が使用されます。

  • majorVersion: パッケージ名に含まれているデータスキーマのメジャーバージョン。 このパラメータを使用すると、複数のメジャースキーマバージョンを同時に使用できます。

新しいスキーマプロジェクトには、次のモジュールが含まれています。

  • proto

    プロトコルバッファ定義が含まれています。 既存のファイルを拡張したり、同じ場所に Protobuf ファイルを追加したりできます。

    スキーマの詳細なドキュメントは proto/src/main/resources/description.md 、ファイルで提供することもできます。 スキーマユーザーは description.md 、スキーマがプラットフォームに公開されると、後で HERE platform ポータルからファイルをダウンロードできます。

  • java

    proto モジュール内の定義から Java ソースコードを生成し、 Java アプリケーションでプロトコルバッファメッセージをシリアル化および逆シリアル化するためのクラスをコンパイルします。 結果として生成されたアーティファクトを Maven ビルドの依存関係として追加できます プロジェクトローカル定義のクラスのみがコンパイルされ、依存関係の管理に役立ちます。

  • scala_2.12

    proto モジュール内の定義から Scala ソースコードを生成し、 Scala アプリケーションでプロトコルバッファメッセージをシリアル化および逆シリアル化するためのクラスをコンパイルします。 結果として生成されたアーティファクトを Maven ビルドの依存関係として追加できます プロジェクトローカル定義のクラスのみがコンパイルされ、依存関係の管理に役立ちます。

  • ds

    パーティションを動的にデコードするために使用される Data スキーマ( DS )バンドルが含まれています。 スキーマ HERE の GeoJSON レンダラーを配置できます。 HERE platform ポータルでは、レンダラーを使用してベース マップの上にパーティション データを表示します。

Maven プロジェクト生成の例

以下のコマンドは、スキーマのサンプル Maven プロジェクトを生成する方法を示しています。

Linux
mvn archetype:generate -DarchetypeGroupId=com.here.platform.schema \
                       -DarchetypeArtifactId=project_archetype \
                       -DarchetypeVersion=2.1.48 \
                       -DartifactId=test_schema \
                       -Dversion=1.0.0 \
                       -Dpackage=com.here.example \
                       -DmajorVersion=1
mvn archetype:generate -DarchetypeGroupId=com.here.platform.schema ^
                       -DarchetypeArtifactId=project_archetype ^
                       -DarchetypeVersion=2.1.48 ^
                       -DartifactId=test_schema ^
                       -Dversion=1.0.0 ^
                       -Dpackage=com.here.example ^
                       -DmajorVersion=1

コマンドを実行し groupId て値を入力すると、次のスキーマ定義構造が生成されます。

├───ds
│   └───src
│       ├───assembly
│       └───main
│           └───resources
│               └───renderers
├───java
├───proto
│   └───src
│       ├───assembly
│       └───main
│           ├───proto
│           │   └───com
│           │       └───here
│           │           └───example
│           │               └───v1
│           └───resources
├───scala_2.12
├───schema.yml
└───pom.xml

proto/src/main/proto/com/here/example/v1/test_schema.proto このファイルには、次の内容が含まれています。

syntax = "proto3";

package com.here.example.v1;

// Declare any dependent resources in the main POM file and add the import statements here:
// import "com/company/dependentGroupId/filename.proto";

// MainProtobufMessage is a placeholder, and its value must match the package/message name in
// the mainMessage tag of the layer-manifest-plugin in the schema_ds module.
message MainProtobufMessage {
    int32 lat = 1;
    int32 lon = 2;
}

pom.xml スキーマプロジェクトのルートにあるファイルには、名前、説明、バージョンなどのスキーマの主な詳細情報が含まれています。 特定のスキーマが依存する他のスキーマの宣言もに含ま pom.xmlれています。 pom.xml サンプル本文については、以下を参照してください。

  ...

  <artifactId>test_schema_v1</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>

  <name>Schema</name>
  <description>Schema project for OLP</description>

  <distributionManagement>
    <repository>
      <id>HERE_PLATFORM_ARTIFACT</id>
      <layout>here</layout>
      <!-- This custom url serves to invoke the HERE wagon extension that handles OAUTH
           and re-writes Maven URIs for the HERE secure repository.-->
      <url>here+artifact-service://artifact-service</url>
    </repository>
  </distributionManagement>

  <parent>
    <groupId>com.here.platform</groupId>
    <artifactId>sdk-standalone-bom_2.12</artifactId>
    <version>#{sdk-bom.version}</version>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <protobuf.version>3.6.0</protobuf.version>
    <scala.version>2.12.12</scala.version>
    <scala.compat.version>2.12</scala.compat.version>
    <here.plugin.version>2.1.10</here.plugin.version>
    <artifact.wagon.version>2.0.10</artifact.wagon.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  ...

schema.yml 、プロジェクトがスキーマプロジェクトであることを示す記述子ファイルです。 schema.yml サンプル本文については、以下を参照してください。

#
# Marker file to indicate this is a schema project
#
name: "${project.name}"
summary: "${project.description}"

# Set this to false if the schema is meant only for use as a component of other schemas
layerSchema: true

nameおよびsummaryのプロパティは、スキーマの名前と説明をそれぞれ定義します。 デフォルト pom.xml では、これらの値はファイルから取得されます。 一般的な目安は、schema.ymlファイル内のこれらのプロパティを変更せず、pom.xmlでのみ定義することです。 layerSchema このスキーマをスタンドアロンスキーマとして使用するかどうかを定義します。 これをに設定 false すると、スキーマは別のスキーマの依存関係としてのみ使用され、プラットフォームでは表示されず、 OLP CLI では一覧表示されません。

メモ

schema.yml ルートフォルダーにが含まれていない状態でプロジェクトが構築および展開された場合、スキーマはプラットフォームに表示されません。

このproto/src/main/resources/description.mdファイルは空のファイル で、スキーマの詳細なドキュメントをマークダウン形式で記述します。

ds/src/main/resources/renderers このフォルダーは、 HERE platform に公開された後にスキーマにバンドルされる GeoJSON レンダラーを配置できる場所です。 レンダラーは JavaScript で記述され、 HERE platform ポータルのベース マップの上にパーティション データを表示するために使用されます。 詳細については、「 GeoJSON レンダラの実装」の章を参照してください。

」に一致する結果は 件です

    」に一致する結果はありません