Enterprise Developer は、Apache Ant スクリプト .cobolBuild を使用して COBOL プロジェクトをビルドします。
.cobolBuild はプロジェクトの一部です。これは、.cobolProj ファイルとともにプロジェクトのディレクトリに保存されます。Eclipse では、[Navigator] ビューでプロジェクトを展開すると、アクセスできます。
スクリプトは、プロジェクトのプロパティの変更時、またはプロジェクト ファイル .cobolProj のリビルド時に自動で再生成されます。
プロジェクトのコード分析を有効にすると、次の要素が .cobolBuild スクリプトに追加されます。
このタスクには、コード分析で結果を返すときにビルドが失敗であるか、続行するかどうかを指定する FailOnError 属性が必要です。
さらに、実行するルールを指定する rule のネストされた要素を持つ ruleList 型も必要です。デフォルトではない場所から IDE にインポートされるルールを有効にした場合、これらのルールに関する詳細が ruleList.custom 型に追加されます。
mffilelist 型は、コード分析を実行する COBOL ファイルを指定します。
コマンド ラインでコード分析を実行するときに次のいずれかのターゲットを指定する必要があります。
追加のルールを別のフォルダーから IDE にインポートした場合、そのフォルダーは rulesDir.custom タグに保存されます。
ネイティブ COBOL プロジェクトを作成し、プロジェクトのプロパティからそのコード分析を有効にし、さらにエディターで .cobolBuild ファイルを開く場合に、これらのパラメーターを調べることができます。
Apache Ant および .cobolBuild スクリプトを使用して、コマンド ラインでソース ファイルのコード分析を実行できます。プロセスの概要を次に示します。
CLASSPATH=product-install-dir\bin\mfant.jar;%CLASSPATH%
たとえば、Enterprise Developer がデフォルトの場所にインストールされている場合は、次のようになります。
CLASSPATH=%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\bin\mfant.jar;%CLASSPATH%
Ant-install-dir\bin\ant -f .cobolBuild Ant-target -DanalysisFailOnError=value
詳細は次のとおりです。
次に例を示します。
c:\tools\antdir\bin\ant -f .cobolBuild build.and.analyze -DanalysisFailOnError=true
プロジェクトのプロパティでコード分析の設定を変更すると、これにより、.cobolBuild スクリプト ファイルが変更されます。または、エディターで .cobolBuild スクリプトを開き、コード分析の設定を手動で変更できます (ただし、IDE でプロジェクトがリビルドされると、これらの変更は前の状態に戻ります)。
スクリプトおよびソース ファイルが同じ場所に保存されている場合には、ワークスペースの外側から .cobolBuild スクリプト ファイルを使用してコード分析を実行できます。これは、コード分析のタスクを継続的インテグレーション (CI) フレームワークに統合する場合、またはワークスペースの外側 (たとえば、Subversion などのバージョン管理システム) にアプリケーションを保存する場合に便利です。
この場合、ファイルを手動で変更してさらに複雑なコード分析ターゲットを作成できます。IDE ではプロジェクトをリビルドするたびにスクリプトをリビルドするため、スクリプトをプロジェクトの一部として開いた場合には、スクリプトを編集できません。
必要な .cobolBuild スクリプト パラメーターについては、このトピックの「.cobolBuild スクリプトでのコード分析のプロパティ」のセクションを参照してください。rulesDir タグおよび rulesDir.custom タグが、実行するコード分析ルールが含まれているファイルの場所をポイントしていることを確認します。
コマンド ラインからのコード分析結果は、すべてのビルド メッセージとともにコマンド プロンプト ウィンドウに表示されます。
メッセージは、次の書式で構成されています。
[Filename and full path] [LocationInFile (start line, column, end line, column)] : [ErrorMessage (error/warning + output code)] : [RuleSetName] : [Rule] : [Code snippet the location refers to]
次に例を示します。
C:\Tutorials\Projects\MyProject\MyProgram.cbl (14,8,14,33): warning MFCA0001 : Within Entire Program : Dead Statements : display "Some Message"