既存のプロジェクトを新しいプロジェクトルートにインポートする
MISRA チェッカーがインストールに含まれるようになりました。'misra.checkers.zip' パッケージでは kwdeploy sync を実行しないでください。'misra.checkers.zip' パッケージがプロジェクトルートの plugins フォルダーにある場合は、kwdeploy sync.を実行する前にそのパッケージを削除してください。
プロジェクトをインポートする前に、新しくインストールする Klocwork 製品でこの機能がサポートされていることを確認してください。
一般的に、このプロセスには以下の手順が必要です。
- 既存の projects_root のバックアップ (念のため)
- 新しい Klocwork サーバーのインストール (新しいマシン上か、または別のポート番号を使用) およびサーバーの起動。
- データベースの検証
- ポータルのオープン、GUI を使った既存プロジェクトの新しいサーバーへのインポート
- 新しくインストールしたサーバーのテスト後、既存サーバーのアンインストールおよび 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 へのログイン
username: jsmith password: <empty>セキュリティと認証方法の詳細については、セキュリティとパーミッションを参照してください。
プロジェクトとサーバー設定のインポート
新しい Klocwork サーバーがインストールされ、ポータルが立ち上がった状態になったら、既存の Klocwork インストールからサーバー設定およびプロジェクトをインポートできます。
既存のソースサーバーからサーバー設定をインポートすると、宛先サーバー上に存在するプロジェクトのみのパーミッション設定とともにすべてのグローバル パーミッション設定がインポートされます。つまり、サーバー A の設定をサーバー B に設定してから、サーバー A のプロジェクトをサーバー B にインポートする場合、プロジェクト A に固有のパーミッション設定はサーバー B に繰り越されません。プロジェクト A のプロジェクト固有パーミッション設定を繰り越すには、インポート操作を実行した後でサーバー設定を再インポートしなければなりません。
- ソースサーバー A の認証設定は、ターゲットサーバー B の認証設定を上作成します。
- 両方のサーバーに存在する役割の場合、ソースサーバー A の役割のパーミッションによって、ターゲットサーバー B の役割のパーミッションが上作成されます。
- ソースサーバー A にのみ存在していた役割とそれに関連付けられたパーミッションが、ターゲットサーバー B にコピーされます。
- ターゲットサーバー B にのみ存在する役割は変更されません。それらのパーミッションは同じままです。
Important: プロジェクトにカスタム設定が含まれている場合は、プロジェクトのインポートを実行した後でサーバー設定を再インポートする必要があります。
また、大量の指摘とビルドを含む projects_root をインポートすると、新しい projects_root が大きくなる可能性があります。
既存のプロジェクトのインポート
- Klocwork ポータルで、[Klocwork Static Code Analysis] をクリックし、プロジェクトの root 管理者ユーザーとして製品にログインします。
- [プロジェクト] タブをクリックします。
その際、Insight を初めて使用する場合は、[設定またはプロジェクトのインポート] ボタンをクリックします。
既にプロジェクトを作成したか、またはインポートした場合は、[インポート] ボタンをクリックします。
- [Klocwork サーバー接続] ダイアログで、既存の Klocwork インストール (インポート元のインストール) のログインおよび接続情報を指定します。指定項目は以下のとおりです。
- 既存のサーバーの URL、例: http://server21:8082
- ユーザー名。サーバーに接続してプロジェクトをインポートするには、プロジェクトの root 管理者権限が必要です。
- パスワード (必要に応じて)
- [サーバー構成のインポート] をクリックして既存のサーバーの構成設定をインポートします。この設定には、認証構成設定、パーミッション、カスタム メトリクス、レポート定義、電子メール購読設定が含まれます。
認証設定をインポートする場合、認証情報が無効になることがあるため、システムからログアウトされることがあります。この場合、今インポートした Admin 認証情報でログインしてください。
- [プロジェクトのリスト] をクリックして既存の projects_root にあるプロジェクトのリストを表示します。
- [インポートするプロジェクトの選択] ダイアログで、新しい projects_root にインポートするプロジェクトを選択します。
-
[インポート] をクリックします。[Import status] ダイアログに、[プロジェクト インポート]のステータスが表示され、[プロジェクト] タブの上部にインポート ステータス メッセージが表示されます。正常にインポートされたプロジェクトはプロジェクトリストに表示されます。
インポートプロセス中に、プロジェクトがアクティブにインポートされるときに、[プロジェクト] ビューの指摘情報がソースプロジェクトのデータに正確に反映されていない場合があります。[プロジェクト] ビューの情報は、インポート操作が完了すると同時に更新されます。インポート ステータス インジケーターをチェックすると、進行状況を確認できます。
- [サーバー構成のインポート] を再びクリックしてプロジェクトに固有の構成設定をインポートします。サーバー設定を再インポートしないとプロジェクトに固有の構成設定はすべて失われるため、このステップは必須です。
- インポートするプロジェクトごとに [パーミッション] をクリックして、各プロジェクトのパーミッションが正しいことを確認します。
インポート時以降、各プロジェクトのパーミッションを確認することが重要です。インポート操作が完了するたびにこのプロセスを繰り返し、インポート元の各ソースサーバーのサーバー設定を再インポートするよう注意する必要があります。
<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 フォルダーにある既存のコードレビューデータは上書きされます。
- Klocwork 製品ポータルで、[コードレビュー] をクリックします。
- [設定] をクリックし、左側のペインの [インポート] をクリックします。
- [コードレビューのインポート] をクリックしてから、ソース Klocwork サーバーの URL、ソースプロジェクトルートの Klocwork 管理者のユーザー ID、およびパスワードを指定します (必要に応じて)。
- インポートするプロジェクトを選択し、[インポート] をクリックします。
既存の Klocwork Code Review をインポートするには、次の手順に従います。
Klocwork コードレビューでは、コードレビューをプロジェクト別に編成しません。コードレビューサーバーから既存のコードレビューをインポートする場合、タグによってコードレビューを指定する必要があります。
- Klocwork 製品ポータルで、[コードレビュー] をクリックします。
- [設定] をクリックし、左側のペインの [インポート] をクリックします。
- [コードレビューのインポート] をクリックしてから、ソース Klocwork コードレビューサーバーの URL、ソースプロジェクトルートの Klocwork 管理者のユーザー ID、およびパスワードを指定します (必要に応じて)。
- コードレビューをインポートするローカルプロジェクトを選択します。
- 左側のペインで、インポートするタグを選択します。
- [割り当て] をクリックして、選択したプロジェクトにタグを割り当てます。
- [インポート] をクリックしてコードレビューをインポートします。
アップグレードのテスト
プロジェクトおよびビルドが Klocwork Static Code Analysis に表示されることを確認します。
新しいライセンスファイルをインストールした場合、ライセンス数が正しいことのチェックにより、ライセンスファイルが正しくインストールされたことを確認します。
新しくインストールされたサーバーの立ち上げ
新しくインストールされたサーバーが有効で、既存のプロジェクトが正しくインポートされことを確認したら、サーバーを立ち上げます。
新しいサーバーの新規で一意のポート番号を選択したら、ユーザーにこの情報を通知してください。
既存のポート番号を再利用する (ユーザーが自身のローカル設定を更新しなくても済むように) 場合は、すべての Klocwork サーバーを停止して再起動し、新しいサーバーに既存のサーバーのポート番号を指定してください。
すべてのデスクトップ解析プラグインをアップグレードする
Klocwork の最新の改善点を活用するには、Desktop Analysis プラグインを常に最新バージョンの製品にアップグレードすることを推奨します。
Klocwork Desktop Analysis プラグインを一度立ち上げた後は、Klocwork ポータルから適切なプラグインをダウンロードすることにより、ユーザー自身がプラグインを再インストールできます。サーバーにプラグインをダウンロードおよび展開する方法の手順については、デスクトップ解析プラグインのダウンロードおよび展開を参照してください。
Klocwork extension for Visual Studio にアップグレードする際は、以前のバージョンのプラグインで生成された解析結果データはすべて削除されます。このため、まだサーバーと同期されていないローカルの欠陥更新情報はすべて失われます。新しいプラグインから解析結果を取得するために、使用ソリューションを再解析することができます。
Klocwork を利用した最初の統合ビルド解析の前に
通常、新しいリリースの Klocwork では、現在のイベントに対応して顧客の要求に応えるようにチェッカー設定が変更されています。これらの変更は、以前のリリースからのチェッカー設定と新しいリリースの設定が異なっていることを意味している可能性があります。
古い設定に対応する正しいチェッカーが有効になっていることを確認してください。新機能で更新されたチェッカーのリストを確認し、チェッカー設定を変更してください。設定が完了したら、build specification (ビルドスペック) を再生成して最新の変更をキャプチャし、修正されていないソースコードで統合ビルド解析を実行します。
既に最初の Klocwork 解析を実行しており、指摘またはステータス変更の一部が欠落している場合は、そのビルドを削除し、チェッカーを再設定して、新しい解析を実行します。
最後のプレアップグレード統合ビルド解析と最初の Klocwork 解析を同じソースコードで実行してから、2 つのビルドを比較することをお勧めします。こうすると、解析エンジンの変化を正しく評価できます。このバージョンのチェッカーの改良、追加、削除の詳細については、新機能を参照してください。