HERE platform は、公開するスキーマ Protobuf ファイルでバリデータを実行し、 Protobuf ファイルがプラットフォームスタイルに準拠していることを確認します。 必要に応じて、以下の情報を使用してバリデータを設定します。
設定を変更するに proto-validate-plugin.xml
は、の対応するセクションを変更します。
Proto モジュールのバリデータ
以下の章で proto
は、プラットフォームが提供するすべてのモジュール検証機能について説明します。
パッケージを除外します
ignorePackage
構成に要素を追加することで、特定のパッケージ( Google の標準タイプなど)を検証から除外できます。
<configuration>
<ignorePackages>
<ignorePackage>google.protobuf</ignorePackage>
</ignorePackages>
</configuration>
下位互換性検証ツール
この検証プラグインでは、特定のメジャーバージョン内で発生した Protobuf ファイルの変更内容に下位互換性があることを確認します。 更新内容を反映する場合は、メジャーバージョン番号を増やしてください。 プラグインは、セマンティックバージョン解析を使用して、前のリリースバージョンを検索します。 バリデータ layer.fds
は、アーティファクトサービスまたは HERE Artifactory リポジトリ ( 利用可能な場合 ) の前のアーティファクトからファイルを取得します。
プラグインは、次の変更を探します。
- ファイルが削除されました
- メッセージが削除されました
- フィールドが削除されました
- フィールドタイプが変更されました
- フィールドラベルが変更されました
- フィールド番号が変更されました
- 列挙型 (enum) を削除しました
- 列挙型 (enum) 値が削除されました
- 列挙型 (enum) 値が変更されました
- プロトタイプの構文が変更されました
- ネストされたメッセージ内の上記のすべてのもの
プラグインをアクティブ化するには、次の設定を使用します。
<configuration>
<backwardsCompatibility>true</backwardsCompatibility>
</configuration>
ファイル拡張子検証ツール
この検証プラグインでは、すべての Protobuf ファイルで .proto
ファイル拡張子が使用されます。 この規則により、 Protobuf 定義のユーザーが、 .jar ファイル内のどのドキュメントにメッセージタイプの指定が含まれているかを確実に把握できます。 これにより、 .jar ファイルには、既存のクライアントを破壊することなく、将来の拡張機能のための追加ファイルを含めることができます。
プラグインをアクティブ化するには、次の設定を使用します。
<configuration>
<fileExtension>true</fileExtension>
</configuration>
Google スタイルのバリデータ
このチェックでは、 Google の Protobuf スタイルガイドが適用されます。 これにより、使用されている特定の Protobuf ツールに関係なく、構文の整合性が確保され、命名の問題のリスクが最小限に抑えられます。
この検証プラグインをアクティブ化するには、次の設定を使用します。
<configuration>
<googleStyle>true</googleStyle>
</configuration>
Package Validator のメジャーバージョン
この検証プラグインは、パッケージ名にアーティファクトのメジャーバージョンが含まれていることを確認します。 たとえば、バージョン 2.3 v2
は、パッケージ名の一部として次のようにする必要 com.here.platform.schema.foo.v2
があります : 。 これにより、プロジェクトが複数のバージョンへのアクセスを必要とする場合に、異なる Protobuf ファイルに名前を付けることができます。
このプラグインをアクティブ化するには、次の設定を使用します。
<configuration>
<majorVersionInPackage>true</majorVersionInPackage>
</configuration>
Data スキーマモジュールのバリデータ
これらのバリデータは、データスキーマ (DS) モジュールによって作成されたアーティファクトに対してのみ実行されます。
パッケージ整合性検証ツール
この検証プラグインは ds
、モジュールにのみ設定できます。 Protobuf ソースファイルのディレクトリツリーが、個々のファイルの Protobuf パッケージ宣言に対応するように強制的に設定されます。
アプリケーションでは、複数の独立した Protobuf 定義を使用することがあります。 独自の言語バインディングを生成する場合、 Protobuf 定義では、単一のルートディレクトリにあるすべての .jar ファイルを抽出できることが想定されています。 ファイルシステムの上書きを回避し、パッケージの名前空間の命名規則によって名前空間の競合が回避されると想定するために、この規則ではファイル名の衝突を回避します。
プラグインをアクティブ化するには、次の設定を使用します。
<configuration>
<packageConsistency>true</packageConsistency>
</configuration>