既存のプロジェクトを新しいプロジェクトルートにインポートする

Klocwork には、既存の projects_root から新しい Klocwork インストールにプロジェクトをインポートするための簡素な GUI が追加されましたこれにより、コマンドラインを使用せずに、プロジェクト単位でデータを移行することができます。

MISRA チェッカーがインストールに含まれるようになりました。'misra.checkers.zip' パッケージでは kwdeploy sync を実行しないでください。'misra.checkers.zip' パッケージがプロジェクトルートの plugins フォルダーにある場合は、kwdeploy sync.を実行する前にそのパッケージを削除してください。

プロジェクトをインポートする前に、新しくインストールする Klocwork 製品でこの機能がサポートされていることを確認してください。

一般的に、このプロセスには以下の手順が必要です。

  1. 既存の projects_root のバックアップ (念のため)
  2. 新しい Klocwork サーバーのインストール (新しいマシン上か、または別のポート番号を使用) およびサーバーの起動。
  3. データベースの検証
  4. ポータルのオープン、GUI を使った既存プロジェクトの新しいサーバーへのインポート
  5. 新しくインストールしたサーバーのテスト後、既存サーバーのアンインストールおよび projects_root の削除

お使いになる前に

インポートプロセスでは、既存の Klocwork インストール (および projects_root) と新しい Klocwork インストール (クリーンな projects_root で) を同時に実行する必要があります。新しいサーバーをインストールしたら、既存の projects_root 内のすべてのプロジェクトを空の projects_root にインポートする必要があります。

同じマシン上で 2 台の Klocwork サーバーを実行するには、それぞれに一意のポート番号が指定されていなければなりません。新しい Klocwork を同じマシンにインストールする場合は、別のポート番号を使用して既存のサーバーを停止および再起動するようにお勧めします。これによって、新しくインストールしたサーバーに対して既存のポート番号を引き続き使用することができます。

ソフトウェアの新規メジャーリリースに移行する場合、メジャーリリースに新しい Klocwork ライセンスが必要な場合など、適格なライセンスのあることを確認してください。詳細については、ライセンスを参照してください。

また、Reprise License Manager は、各マシンで 2 つ以上のベンダーデーモンのインスタンスが実行されるのを防ぎます。すなわち、1 つのホストで 2 つのライセンスサーバーを実行することはできません。この場合、1 つのライセンスサーバーを実行し、両方の Klocwork インストールをそのライセンスサーバーにポイントする必要があります。詳細については、複数の projects_root ディレクトリを使用する場合のライセンスを参照してください。

Klocwork サーバーとデータベースサーバーの両方には、インポートプロセス時に対象のサーバーからアクセスできるように割り当てられた完全修飾ドメイン名か IP アドレスが必要です。localhost は使用しないでください。

インポート操作を実行するには、プロジェクトの root 管理者アクセスが必要です。

プロジェクトのインポートに対応した Klocwork のバージョンに対してサポートされるアップグレードパス

下の表で最新のバージョンおよび適切なアップグレード パスを確認してください。正しいバージョンの Klocwork にアップグレードしたら、そこから既存のプロジェクトをインポートできます。

下のチャートは、最新の現行リリースを正確に示しています。Perforce はここでも役に立ちます。以前のリリースからの移行が必要な場合には、Static Code Analysis プロフェッショナルサービスまでお問い合わせいただき、サービスエンゲージメントを介して相談してください。

Klocwork のバージョンを使用している場合は、 以下のバージョンのインポートがサポートされています。
2023.1 最新 Klocwork 2023.2 最新
2022.4 最新 Klocwork 2023.2 最新
2022.3 最新 Klocwork 2023.2 最新
2022.2 最新 Klocwork 2023.2 最新
2022.1 最新 Klocwork 2023.2 最新
2021.4 最新

Klocwork 2023.1 最新 --> 2023.2 最新

2021.3 最新 Klocwork 2023.1 最新 --> 2023.2 最新
2021.2 最新 Klocwork 2023.1 最新 --> 2023.2 最新
2021.1 最新 Klocwork 2023.1 最新 --> 2023.2 最新

リリース間の相互運用

Klocwork の最新の改善点を活用するには、Server、Build、および Desktop Analysis プラグインを常に最新バージョンの製品にアップグレードすることを推奨します。Klocwork サーバーツールおよびビルドツールは、各メジャーリリース内でデスクトップ解析プラグインとの互換性があります。

また Klocwork には、以前のメジャーバージョンの Klocwork から現在のバージョンの Klocwork にビルドをロードする機能もあります。これは、たとえば Klocwork 2022 の任意のバージョンから Klocwork 2023.2に、データをインポートまたは移行することなく、Klocwork ビルドをロードできるということです。詳細については、ビルドのクロスバージョンサポートを参照してください。

現行の Klocwork サーバーのバージョンが、プロジェクトをインポートするためのバージョン要件を満たさない場合は、既存の Klocwork のバージョンを、サポートされているサービスリリースまたはバージョンにアップグレードします。次に最新バージョンの Klocwork をインストールします。最新バージョンの Klocwork をインストールしてから、それを使用して既存の Klocwork サーバーに接続し、プロジェクトをインポートします。プロジェクトをインポートするには、下記の手順に従ってください。

Klocwork サーバーパッケージのインストール

Klocwork サーバーパッケージをインストールします。詳しい手順については、Klocworkのインストールを参照してください。

ライセンス ファイルを <projects_root>/licenses にコピーします。

オプションについては、ライセンスを参照してください。

サーバーを起動します。

新しいバージョンの Klocwork をインストールしてから、サーバーを起動します。Klocwork のインストールごとに、一意のホスト名およびポート番号の組み合せを指定する必要があります。

一意のホスト名とポート番号の組合せの指定は、起動時またはインストールプロセス中に行うことができます。詳細については、Klocwork サーバーの管理を参照してください。

データベースの検証 (必須)

dbvalidate は、データベースのデータの一貫性をチェックするツールです。移行またはインポートにデータベースのエラーを修正できるようにするには、このツールの実行が必須です。インストールされているソフトウェアのバージョンと一致する dbvalidate ツールのバージョンを使用します (つまり projects_root ディレクトリと一致するバージョン)。

データベースを検証するには、古いインストールのデータベース サーバーを実行する必要があります。データベース サーバーは、Klocwork サーバーとは別のサービスとして一覧表示されるため、それが実行されていることを確認します。

次のコマンドを実行します。たとえば、
java -jar <server_install>/class/dbvalidate.jar --projects-root <projects_root>

フィールド

  • <server_install> はお客様のインストールディレクトリです。
  • <projects_root> は検証する古いプロジェクトルートの場所を指定します。

java -jar /local/tools/klocwork/server/class/dbvalidate.jar --projects-root /local/tools/klocwork/server/projects_root 

dbvalidate ツールは、"validation started" から "validation finished" までの行のエラーを報告します。

Wed Jun 01 07:53:58 CDT 2020 kw_central database (version: 95) validation started
<detected errors appear here>
Wed Jun 01 07:54:28 CDT 2018 Database validation finished.
  • エラーが表示される場合は、インポートまたは移行前にエラーを修正できるようにサポートチケットを開いてください。
  • エラーが表示されない場合は、データベースは正常に検証されました。

--rebuildIndex=true オプションを使用して dbvalidate を実行することもできます。これにより、指定したプロジェクト用に lucene インデックスを再作成でき、多くの場合インデックスのサイズを減らすことができます。

Important: --rebuildIndex=true オプションを使用して dbvalidate を実行する前に、lucene インデックスフォルダーを必ずバックアップしてください。

たとえば、次を実行できます。

java -cp dbvalidate.jar com.klocwork.dbvalidate.Cleanup231 --projects-root <projects_root_folder> --project <project_name> --rebuildIndex=true

Klocwork Static Code Analysis へのログイン

Klocwork サーバーを開始した後、Klocwork Static Code Analysis は、インストール時に選択した Klocwork サーバーのホスト名と Klocwork サーバーのポート (例: server21:8080) の URL を使用してアクセスできます。デフォルトでは、Klocwork をインストールした人が Klocwork 管理者として設定され、プロジェクト ルート管理者の役割に割り当てられます。最初は、基本認証アクセス制御メソッドが使用されるので、パスワードなしでログインできます。たとえば、インストール時に使用したユーザー アカウントが jsmith の場合、管理者の役割で静的コード解析にログインするには、次の資格情報を使用します。
username: jsmith
password: <empty>
セキュリティと認証方法の詳細については、セキュリティとパーミッションを参照してください。

プロジェクトとサーバー設定のインポート

新しい Klocwork サーバーがインストールされ、ポータルが立ち上がった状態になったら、既存の Klocwork インストールからサーバー設定およびプロジェクトをインポートできます。

既存のソースサーバーからサーバー設定をインポートすると、宛先サーバー上に存在するプロジェクトのみのパーミッション設定とともにすべてのグローバル パーミッション設定がインポートされます。つまり、サーバー A の設定をサーバー B に設定してから、サーバー A のプロジェクトをサーバー B にインポートする場合、プロジェクト A に固有のパーミッション設定はサーバー B に繰り越されません。プロジェクト A のプロジェクト固有パーミッション設定を繰り越すには、インポート操作を実行した後でサーバー設定を再インポートしなければなりません。

ソースサーバー A からターゲットサーバー B にサーバー設定をインポートする場合、次も適用されます。
  • ソースサーバー A の認証設定は、ターゲットサーバー B の認証設定を上作成します。
  • 両方のサーバーに存在する役割の場合、ソースサーバー A の役割のパーミッションによって、ターゲットサーバー B の役割のパーミッションが上作成されます。
  • ソースサーバー A にのみ存在していた役割とそれに関連付けられたパーミッションが、ターゲットサーバー B にコピーされます。
  • ターゲットサーバー B にのみ存在する役割は変更されません。それらのパーミッションは同じままです。

Important: プロジェクトにカスタム設定が含まれている場合は、プロジェクトのインポートを実行した後でサーバー設定を再インポートする必要があります。

また、大量の指摘とビルドを含む projects_root をインポートすると、新しい projects_root が大きくなる可能性があります。

既存のプロジェクトのインポート

  1. Klocwork ポータルで、[Klocwork Static Code Analysis] をクリックし、プロジェクトの root 管理者ユーザーとして製品にログインします。
  2. [プロジェクト] タブをクリックします。

    その際、Insight を初めて使用する場合は、[設定またはプロジェクトのインポート] ボタンをクリックします。

    既にプロジェクトを作成したか、またはインポートした場合は、[インポート] ボタンをクリックします。

  3. [Klocwork サーバー接続] ダイアログで、既存の Klocwork インストール (インポート元のインストール) のログインおよび接続情報を指定します。指定項目は以下のとおりです。
    • 既存のサーバーの URL、例: http://server21:8082
    • ユーザー名。サーバーに接続してプロジェクトをインポートするには、プロジェクトの root 管理者権限が必要です。
    • パスワード (必要に応じて)
  4. [サーバー構成のインポート] をクリックして既存のサーバーの構成設定をインポートします。この設定には、認証構成設定、パーミッション、カスタム メトリクス、レポート定義、電子メール購読設定が含まれます。

    認証設定をインポートする場合、認証情報が無効になることがあるため、システムからログアウトされることがあります。この場合、今インポートした Admin 認証情報でログインしてください。

  5. [プロジェクトのリスト] をクリックして既存の projects_root にあるプロジェクトのリストを表示します。
  6. [インポートするプロジェクトの選択] ダイアログで、新しい projects_root にインポートするプロジェクトを選択します。
  7. [インポート] をクリックします。[Import status] ダイアログに、[プロジェクト インポート]のステータスが表示され、[プロジェクト] タブの上部にインポート ステータス メッセージが表示されます。正常にインポートされたプロジェクトはプロジェクトリストに表示されます。

    インポートプロセス中に、プロジェクトがアクティブにインポートされるときに、[プロジェクト] ビューの指摘情報がソースプロジェクトのデータに正確に反映されていない場合があります。[プロジェクト] ビューの情報は、インポート操作が完了すると同時に更新されます。インポート ステータス インジケーターをチェックすると、進行状況を確認できます。

  8. [サーバー構成のインポート] を再びクリックしてプロジェクトに固有の構成設定をインポートします。サーバー設定を再インポートしないとプロジェクトに固有の構成設定はすべて失われるため、このステップは必須です。
  9. インポートするプロジェクトごとに [パーミッション] をクリックして、各プロジェクトのパーミッションが正しいことを確認します。

インポート時以降、各プロジェクトのパーミッションを確認することが重要です。インポート操作が完了するたびにこのプロセスを繰り返し、インポート元の各ソースサーバーのサーバー設定を再インポートするよう注意する必要があります。

<old_Klocwork_install>/config/java_wrappers_memory.conf にあるメモリ割り当てファイルを以前に変更した場合は、それらの変更が引き続き必要であることを確認し、新しいインストールで java_wrappers_memory.conf に同じ変更を加えます。

Web API を使用したプロジェクトのインポート

Klocwork Web API を使用すると、コマンドラインでプロジェクトをインポートできます。Web API では Web API アクセス権限が必要です。デフォルトでは、プロジェクト管理者役割とプロジェクトの root 管理者役割は Web API にアクセスできます。次の例は、プロジェクトをインポートするための curl スクリプトです。

curl --data "action=import_project&user=myself&project=my_project&sourceURL=
http://oldserver:8080&sourceAdmin=user&sourcePassword=pwd" http://localhost.mycompany.com:8080/review/api

フィールド

  • project は、インポートするプロジェクトの名前です。
  • sourceURL は、インポート元の既存の Klocwork サーバーの URL です。
  • sourceAdmin は、インポート元の Klocwork サーバー管理者 (プロジェクトの root への管理アクセス権を持っている必要があります) のユーザー ID です。
  • sourcePassword は管理者のパスワードです。

インポート元の projects_root フォルダーにあるプロジェクトすべてのリストを取得するには、次のコマンドを実行します。

curl --data "action=projects&user=myself&" http://localhost.mycompany.com:8080/review/api

Web API を使用してサーバー構成設定をインポートすることもできます。

curl --data "action=import_server_configuration&user=myself&sourceURL=
http://oldserver:8080&sourceAdmin=user&sourcePassword=pwd" http://localhost.mycompany.com:8080/review/api

通常、これらの操作のスクリプトは、Python などの言語で作成されています。Python を使用した curl 呼び出しの記述例については、Klocwork Web API クックブックを参照してください。

分類基準ファイルのインポート

これまでのリリースでカスタム分類基準をインポートしていた場合は、新しい分類基準ファイルを再インポートして変更を反映させる必要があります。分類基準の変更のリストについては、新機能を参照してください。

コードレビューのインポート

既存のコードレビューは、新しいプロジェクトルートにインポートできます。

既存の Klocwork Inspect コードレビューをインポートするには、次の手順に従います。

コードレビューデータをインポートするには、ローカルのプロジェクトルートに同等のプロジェクトが必要です。コードレビューデータをインポートすると、現在の projects_root フォルダーにある既存のコードレビューデータは上書きされます。

  1. Klocwork 製品ポータルで、[コードレビュー] をクリックします。
  2. [設定] をクリックし、左側のペインの [インポート] をクリックします。
  3. [コードレビューのインポート] をクリックしてから、ソース Klocwork サーバーの URL、ソースプロジェクトルートの Klocwork 管理者のユーザー ID、およびパスワードを指定します (必要に応じて)。
  4. インポートするプロジェクトを選択し、[インポート] をクリックします。

既存の Klocwork Code Review をインポートするには、次の手順に従います。

Klocwork コードレビューでは、コードレビューをプロジェクト別に編成しません。コードレビューサーバーから既存のコードレビューをインポートする場合、タグによってコードレビューを指定する必要があります。

  1. Klocwork 製品ポータルで、[コードレビュー] をクリックします。
  2. [設定] をクリックし、左側のペインの [インポート] をクリックします。
  3. [コードレビューのインポート] をクリックしてから、ソース Klocwork コードレビューサーバーの URL、ソースプロジェクトルートの Klocwork 管理者のユーザー ID、およびパスワードを指定します (必要に応じて)。
  4. コードレビューをインポートするローカルプロジェクトを選択します。
  5. 左側のペインで、インポートするタグを選択します。
  6. [割り当て] をクリックして、選択したプロジェクトにタグを割り当てます。
  7. [インポート] をクリックしてコードレビューをインポートします。

アップグレードのテスト

プロジェクトおよびビルドが Klocwork Static Code Analysis に表示されることを確認します。

新しいライセンスファイルをインストールした場合、ライセンス数が正しいことのチェックにより、ライセンスファイルが正しくインストールされたことを確認します。

新しくインストールされたサーバーの立ち上げ

新しくインストールされたサーバーが有効で、既存のプロジェクトが正しくインポートされことを確認したら、サーバーを立ち上げます。

新しいサーバーの新規で一意のポート番号を選択したら、ユーザーにこの情報を通知してください。

既存のポート番号を再利用する (ユーザーが自身のローカル設定を更新しなくても済むように) 場合は、すべての Klocwork サーバーを停止して再起動し、新しいサーバーに既存のサーバーのポート番号を指定してください。

すべてのデスクトップ解析プラグインをアップグレードする

Klocwork の最新の改善点を活用するには、Desktop Analysis プラグインを常に最新バージョンの製品にアップグレードすることを推奨します。

Klocwork Desktop Analysis プラグインを一度立ち上げた後は、Klocwork ポータルから適切なプラグインをダウンロードすることにより、ユーザー自身がプラグインを再インストールできます。サーバーにプラグインをダウンロードおよび展開する方法の手順については、デスクトップ解析プラグインのダウンロードおよび展開を参照してください。

Klocwork extension for Visual Studio にアップグレードする際は、以前のバージョンのプラグインで生成された解析結果データはすべて削除されます。このため、まだサーバーと同期されていないローカルの欠陥更新情報はすべて失われます。新しいプラグインから解析結果を取得するために、使用ソリューションを再解析することができます。

Klocwork を利用した最初の統合ビルド解析の前に

通常、新しいリリースの Klocwork では、現在のイベントに対応して顧客の要求に応えるようにチェッカー設定が変更されています。これらの変更は、以前のリリースからのチェッカー設定と新しいリリースの設定が異なっていることを意味している可能性があります。

古い設定に対応する正しいチェッカーが有効になっていることを確認してください。新機能で更新されたチェッカーのリストを確認し、チェッカー設定を変更してください。設定が完了したら、build specification (ビルドスペック) を再生成して最新の変更をキャプチャし、修正されていないソースコードで統合ビルド解析を実行します。

既に最初の Klocwork 解析を実行しており、指摘またはステータス変更の一部が欠落している場合は、そのビルドを削除し、チェッカーを再設定して、新しい解析を実行します。

最後のプレアップグレード統合ビルド解析と最初の Klocwork 解析を同じソースコードで実行してから、2 つのビルドを比較することをお勧めします。こうすると、解析エンジンの変化を正しく評価できます。このバージョンのチェッカーの改良、追加、削除の詳細については、新機能を参照してください。