既存のスキーマプロジェクトを移行します

スキーマ archetype 0.6.4 以前を使用して作成されたプロジェクトの場合 : スキーマを公開して共有するには、次の手順に従ってスキーマプロジェクトを最新バージョンに更新する必要があります。

  1. pom.xml プロジェクトのルートディレクトリにあるに、次のセクションを追加します。

    • project ノード :

      <distributionManagement>
        <repository>
          <id>HERE_PLATFORM_ARTIFACT</id>
          <layout>default</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>
      
      <repositories>
        <repository>
          <id>HERE_PLATFORM_ARTIFACT</id>
          <layout>default</layout>
          <url>here+artifact-service://artifact-service</url>
        </repository>
      </repositories>
      
    • project > properties ノード :

      <protobuf.version>3.6.0</protobuf.version>
      <here.plugin.version>2.1.10</here.plugin.version>
      <artifact.wagon.version>2.0.10</artifact.wagon.version>
      
    • project > build ノード :

      <extensions>
        <extension>
          <groupId>com.here.platform.artifact</groupId>
          <artifactId>artifact-wagon</artifactId>
          <version>${artifact.wagon.version}</version>
        </extension>
      </extensions>
      
    • project > build > plugins ノード :

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>test-schema</id>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <exportAntProperties>true</exportAntProperties>
              <target>
                <condition property="skipSchemaAttach" value="false" else="true">
                  <available file="${project.basedir}/schema.yml"/>
                </condition>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>copy-schema</id>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <skip>${skipSchemaAttach}</skip>
              <target>
                <echoproperties destfile="${project.build.directory}/build.properties"/>
                <copy todir="${project.build.directory}" file="${project.basedir}/schema.yml" overwrite="true">
                  <filterset begintoken="${" endtoken="}" filtersfile="${project.build.directory}/build.properties"/>
                </copy>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.6</version>
        <configuration>
          <skipAttach>${skipSchemaAttach}</skipAttach>
        </configuration>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <file>${project.build.directory}/schema.yml</file>
                  <type>yml</type>
                  <classifier>here-schema</classifier>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
      
  2. 次のように更新します proto/pom.xml

    • パッケージからコンパイルするlayer-manifest-pluginproto-validate-pluginmaven-assembly-plugin Maven プラグイン定義のplugin > executions > execution > phase要素 :

      <phase>compile</phase>
      
    • project > build > plugins ノード :

      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
            <execution>
              <id>default-jar</id>
              <phase>package</phase>
              <configuration>
                <classifier>empty</classifier>
              </configuration>
            </execution>
          </executions>
      </plugin>
      
  3. 次のように更新します java/pom.xml

    • plugin > version protoc-jar-maven-plugin Maven プラグイン定義の要素 :

      <version>3.6.0.1</version>
      
    • plugin > executions > execution > configuration > protocVersion protoc-jar-maven-plugin Maven プラグイン定義の要素 :

      <protocVersion>3.6.0</protocVersion>
      
  4. 次のように更新します scala_2.12/pom.xml

    • plugin > executions > execution > configuration > protocVersion protoc-scala-maven-plugin Maven プラグイン定義の要素 :

      <protocVersion>3.6.0</protocVersion>
      
    • scalapb-runtime_2.12 dependencies > dependency ブロック内の定義 :

      <dependency>
        <groupId>com.thesamet.scalapb</groupId>
        <artifactId>scalapb-runtime_2.12</artifactId>
        <version>0.8.0</version>
      </dependency>
      
  5. 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
    # Note: When the layerSchema property is set to false, the schema won't be visible in the
    # schema list in the HERE platform portal or via OLP CLI
    
    layerSchema: true
    

project.nameproject.description の値は POM ファイルから取得されます。 これらの値は、プラットフォームのスキーマを示します。 詳細 については、「スキーマアーティファクトの公開」の章を参照してください。

スキーマプロジェクトにスキーマが 1 つだけ含まれている場合 schema.yml は、 POM ファイルと同じレベルのメインディレクトリにファイルを作成する必要があります。 マルチスキーマプロジェクトの場合は、各プロジェクトに独自のモジュールが含ま schema.yml れているため、各モジュールのルートに異なるファイルを作成する必要があります。

スキーマプラグインを v1.x.x から v2.x.x にアップグレードしています

HERE Maven プラグイン v2.1.10 には、スキーマ v1.x.x 以前と下位互換性のないバグ修正が含まれています。 修正の中 には、Package Consistencyバリデータが無効になっている場合に、カスタムディレクトリ内のスキーマ proto ファイルを構造化する可能性があります ( それらのファイルを直接proto > src > main > protoディレクトリに配置することも含まれます ) 。

最新の HERE Maven プラグインを使用するには、以下の手順に従ってスキーマプロジェクトをアップグレードする必要があります。

  1. 次のように更新します java/pom.xml

    • plugin > executions > execution > configuration protoc-jar-maven-plugin Maven プラグイン定義の要素 :

      inputDirectories タグの内容を次の設定に置き換えます。

      <inputDirectories>
        <include>${project.build.directory}/proto</include>
      </inputDirectories>
      

      includeDirectories タグの内容を次の設定に置き換えます。

      <includeDirectories>
        <include>${project.build.directory}/proto</include>
        <include>${project.build.directory}/proto-lib</include>
      </includeDirectories>
      
  2. 次のように更新します scala_2.12/pom.xml

    • plugin > executions > execution > configuration protoc-scala-maven-plugin Maven プラグイン定義の要素 :

      inputDirectories タグの内容を次の設定に置き換えます。

      <inputDirectories>
        <include>${project.build.directory}/proto</include>
      </inputDirectories>
      

      includeDirectories タグの内容を次の設定に置き換えます。

      <includeDirectories>
        <include>${project.build.directory}/proto-lib</include>
      </includeDirectories>
      
  3. assembly > fileSets のセクションに次の設定を追加 ds/src/assembly/proto.xmlします。

    <!-- protos from dependencies -->
    <fileSet>
      <directory>${project.build.directory}/proto-lib</directory>
      <outputDirectory/>
    </fileSet>
    

上記の更新プログラムをスキップすると、ビルド時のエラーが発生する可能性があります。

Scala 2.12 モジュールをスキーマプロジェクトに追加しています

Scala 2.12 モジュールをスキーマに追加するには、プロジェクトの HERE Maven プラグインのバージョンを v2.1.10 以降にアップグレードする必要があります。 v1.x.x から v2.x.x へのアップグレード手順については、前の章を参照してください。

次の手順に従って、新しい Scala_2.12 モジュールをプロジェクトに追加します。

  1. スキーマで新しいモジュールを作成します。

    • scala_2.12 ルートプロジェクトフォルダにディレクトリを作成します。
    • Scala 2.11 Maven モジュール設定を scala/pom.xml からにコピー scala_2.12/pom.xmlします。
    • ルートプロジェクトディレクトリのpom.xmlファイルのmodulesセクションを更新して、新しいモジュールを追加します。 例 :

      <modules>
        <module>proto</module>
        <module>java</module>
        <module>scala</module>
        <module>scala_2.12</module>
        <module>ds</module>
      </modules>
      
  2. 次のように更新します scala_2.12/pom.xml

    • 開始<schema-name>_scala_2.11または<schema-name>_scala終了<schema-name>_scala_2.12artifactId名前を変更します。<schema-name>はスキーマの名前です。 scala/pom.xml スキーマと以前のバージョンとの下位互換性を保つために、変更を加えることはできませんので注意してください。
    • 新しいモジュールに合わせて、namedescription適切にアップデートしてください。
    • 次の例に示すように、dependenciesセクションのscala-libraryバージョンを 2.12.x に更新します。

      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.12.12</version>
      </dependency>
      
    • dependencies セクションで scalapb-runtime_2.11、次 scalapb-runtime_2.12 のように依存関係をの依存関係に置き換えます。

      <dependency>
        <groupId>com.thesamet.scalapb</groupId>
        <artifactId>scalapb-runtime_2.12</artifactId>
        <version>0.8.0</version>
        <exclusions>
          <exclusion>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      
    • build > plugins > protoc-scala-maven-plugin プラグインの場合 :

      • artifactId の名前を protoc-scala-maven-plugin に変更 protoc-scala-maven-plugin_2.12します。
      • プラグインの依存関係のセクションが存在する場合は削除します。 最終 protoc-scala-maven-plugin_2.12 的な設定は次のようになります。

        <plugin>
          <groupId>com.here.platform.schema.maven_plugins</groupId>
          <artifactId>protoc-scala-maven-plugin_2.12</artifactId>
          <version>${here.plugin.version}</version>
          <executions>
            <execution>
              <phase>generate-sources</phase>
              <goals>
                <goal>scala-protoc-mojo</goal>
              </goals>
              <configuration>
                <protocVersion>${protoc.version}</protocVersion>
                <inputDirectories>
                  <include>${project.build.directory}/proto</include>
                </inputDirectories>
                <includeDirectories>
                  <include>${project.build.directory}/proto-lib</include>
                </includeDirectories>
                <includeStdTypes>true</includeStdTypes>
              </configuration>
            </execution>
          </executions>
        </plugin>
        
  3. スキーマプロジェクトに Scala 2.11 および 2.12 のモジュールが含まれている場合は、scala.versionプロパティまたはscala.compat.version Maven プロパティを使用しないでください。 これらの変数によって、ランタイムの問題が発生し、 Scala 2.11 または 2.12 のバインディングが使用できなくなる可能性があります。

注 : Scala 2.11 バインディングの更新

以降で作成 project_archetype v1.0.0 されたスキーマは、で更新された Scala 2.11 バインディングを取得 scalapb v0.8.0 し、それらを使用するプロジェクトでコンパイルエラーが発生する可能性があります。 新しいバインディングでは、のような Protobuf ラッパータイプを使用する必要は DoubleValueありません。 必要に応じてプロジェクトコードを更新してください。

スキーマ 2.11 モジュールを Scala プロジェクトから削除します

現在 2.1.15、スキーマ原型プロジェクトは Scala 2.11 をサポートしていません。

既存のスキーマから Scala 2.11 を削除するには、次の手順を実行します。

  1. pom.xml ファイルのスキーマバージョンを増やします。この設定を行わないと、 Scala 2.11 のバインディングは削除されません。 スキーマの古いバージョンには、 Scala 2.11 バインディングが含まれています。
  2. scala スキーマからモジュールを取り外します。
  3. <module>scala</module> ルート pom.xml ファイルからを削除します
  4. mvn clean deploy コマンドを使用してスキーマを再展開します。

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

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