アプリケーションに新規 Java™ プロジェクトを追加するときは、プロジェクト名を指定し、作業ディレクトリーを参照し、ソース・ルートおよびプロジェクト依存関係を指定します。
このタスクについて
このトピックの手順では、新規プロジェクト・ウィザード (プロジェクトをアプリケーション内に作成する場合は、新規アプリケーション・ウィザード) のすべてのページで設定を完了するよう指示しています。ただし、ウィザードの一部のページはオプションです (「終了」ボタンがアクティブ化されたら、必須の設定は完了しています)。ウィザードで行った設定は、選択したプロジェクトの「プロパティー」ビューでプロジェクトを作成した後に変更できます。オプション・ページを構成せずに新規プロジェクト・ウィザードを完了した場合は、後から「プロパティー」ビューでそれらのページの設定を変更できます。
手順
-
「エクスプローラー」ビューで、プロジェクトを追加するアプリケーションを選択します (アプリケーションをまだ追加していない場合は、アプリケーションの構成を参照してください)。
-
以下のいずれかのアクションを実行して、新規プロジェクト・ウィザードを開きます。
-
ワークベンチのメイン・メニューから、を選択します。
-
選択したアプリケーションを右クリックして、コンテキスト・メニューから、を選択します。
- ウィザードの「プロジェクト・タイプの選択 」ページで、プロジェクト・タイプとして「Java/JSP」を選択してから、「次へ」をクリックして次のウィザード・ページに進みます。
- 「プロジェクト・ソース」ウィザード・ページで、以下のようにします。
- プロジェクト・ソースを指定します。プロジェクト・ソースは、プロジェクト・ファイルが格納されているディレクトリー、およびプロジェクトに含める追加の個別ファイルから成り立っています。
プロジェクトに名前を付けて、作業ディレクトリーを指定します。「作業ディレクトリー」は、AppScan® ソース プロジェクト・ファイル (.ppf) の格納場所であり、すべての相対パスの基準になります。
- ソース・ルートを手動で追加するか、AppScan Source for Analysis がすべての有効なソース・ルートを自動的に検出できるように設定します。
重要:
- Java クラス・ファイルを分析するには、
-g
オプションを指定した javac
でコンパイルする必要があります。AppScan ソース 分析は、このオプションによって生成されたデバッグ情報に依存します。
- 各国語文字を含んだ Java ソース・ファイルがプロジェクトに含まれている場合、ネイティブ・ロケール (UTF-8 など) 以外のロケールで稼働していると、スキャンが失敗し、コンソールにエラーや警告が表示されます。
- ソース・ルートを自動的に検出するには:
- 「ソース・ルートの検出」をクリックし、ソース・コードのルート・ディレクトリーを参照します。
- 検出されたすべてのソース・ルートのリストから、プロジェクトに追加するソース・ルートを選択します。
- 「OK」をクリックします。スキャンに含めるソースが「プロジェクト・ソース」ダイアログ・ボックスに表示されます。
- ソース・ルートを手動で検出するには:
- 「ソース・ルートの追加」をクリックします。
- ソース・コードのルート・ディレクトリーまたはファイルを選択します。
- 「OK」をクリックします。ソース・ルートを追加した後で、特定のディレクトリーまたはファイルを除外できます。これを行うには、ディレクトリーまたはファイルを選択し (またはこれらの項目を複数選択し)、選択項目を右クリックし、メニューから「除外」を選択します。ファイルを含めたり除外したりすると、そのファイル名の左側にあるアイコンが変化します。
プロジェクト依存関係を設定しないでプロジェクトを追加するには、「終了」をクリックします。プロジェクト依存関係を指定するには、「次へ」をクリックします。
- 「JSP プロジェクト依存関係」ページで、以下のようにします。
- JavaServer Page (JSP) プロジェクト依存関係の特定: JavaServer Page を含む Java プロジェクトの場合は、JSP プロジェクト依存関係を特定します。プロジェクトが JavaServer Page を含む Web アプリケーションの場合は、「Web (JSP) コンテンツを含む」チェック・ボックスを選択します。
- 「Web コンテキスト・ルート」を手動で選択するか、「検索」をクリックして検索します。「Web コンテキスト・ルート」は、ディレクトリーを含む 1 つの WAR ファイルまたは WEB-INF ディレクトリーです。Web コンテキスト・ルートは、有効な Web アプリケーションのルートである必要があります。
-
プロジェクトの「JSP コンパイラー」を選択します。製品に付属の Tomcat 7 が、デフォルトの JSP コンパイラー設定です (デフォルト JSP コンパイラーは「Java および JSP」設定ページで変更できます)。AppScan ソース でサポートされるコンパイラーについて詳しくは、システム要件およびインストールの前提条件 を参照してください。
Apache Tomcat バージョン 7 および 8 は、AppScan ソース のインストール済み環境に含まれています。「Tomcat 7」および「Tomcat 8」設定ページが未構成の場合、AppScan ソース は、提供されている Tomcat JSP コンパイラー (現在デフォルトとしてマーク) を使用して JSP ファイルをコンパイルします。外部のサポート対象 Tomcat コンパイラーを使用する場合は、「Tomcat」設定ページを使用してローカルの Tomcat インストールを参照します。
Oracle WebLogic サーバー または WebSphere® アプリケーション・サーバー を使用する場合は、適切な設定ページで、アプリケーション・サーバーのローカルのインストール済み環境を示すように構成して、分析時にそれを JSP コンパイルに使用できるようにする必要があります。この構成をまだ完了していない場合は、JSP コンパイラーの選択時に、構成を完了するように求めるメッセージが表示されます。メッセージ内の「はい」をクリックすると、該当する設定ページに進みます。「いいえ」をクリックすると、JSP コンパイラーの選択項目の隣に警告リンクが表示されます (リンクを選択すると、設定ページが開きます)。
JSP プロジェクト依存関係を含むプロジェクトを追加する場合は、「終了」をクリックします。Java プロジェクト依存関係を指定する場合は、「次へ」をクリックします。
- 「Java プロジェクト依存関係」ページで、この Java プロジェクトの構築に必要な依存関係を指定します。
- JAR ファイルを手動で追加するか、「検索」をクリックして、依存している JAR ファイルとクラス・ファイルが格納されているディレクトリーを AppScan Source for Analysis で検索します。
「クラス・パス」リストに、プロジェクトへの相対パスが表示されます。クラス・パスでは、必要な JAR ファイルとプロジェクトが必要とするクラス・ファイルが格納されているディレクトリーを指定する必要があります。
- 追加、削除、上へ移動、および下へ移動: クラス・パスに対してファイルを追加または削除するか、それらの順序を上または下へ移動します。
- 検索: プロジェクト内のソース・ファイルに基づいて JAR とクラス・パス項目を検索します。
重要: Java プロジェクトに JavaServer Pages が含まれる場合は、JSP プロジェクト依存関係も追加する必要があります。
- プロジェクト依存関係を手動で検索するには:
- 「クラス・パス」セクション・ツールバーで「追加」をクリックしてから、Java プロジェクトのコンパイルに必要な JAR とクラス・ファイル・ディレクトリーを選択します。
- 「OK」をクリックします。JAR ファイルとディレクトリーがクラス・パス内に表示されます。必要に応じて順序を変更します。
- 依存関係を自動的に検索するには:
- 「クラス・パス」セクションのツールバーで「検索」をクリックします。
- Java プロジェクトのコンパイルに必要な JAR とクラス・ファイルを検索するディレクトリーを指定します。
- ソースに基づいて、指定の検索パスを使用して、必要なプロジェクト依存関係を AppScan Source for Analysis で検索する場合は、「ソースおよび JAR ファイル内を検索する」チェック・ボックスを選択します。
- 「次へ」をクリックして、プロジェクト依存関係を検索させ、競合を識別させます。
- 競合を解決するには:
- 競合が存在する場合は、「競合の解決」ダイアログ・ボックスで、解決する項目を選択し、「解決」 をクリック (するか、「次へ」をクリックして競合を自動的に解決) します。競合は、AppScan Source for Analysis が、依存関係を満たす 1 つのディレクトリー内で複数の JAR またはクラスを検出した場合に発生します。
赤色のアイコンが未解決の競合の左側に表示されます。競合が解決されると、赤いアイコンが緑に変更され、項目は「解決済み」になります。競合を「削除」することもできます。
- 競合を解決または削除したら、クラス・パス項目を確認、並べ替え、または削除することができます。見つからなかったインポートのリストに注意してください。未解決のインポートは、AppScan Source for Analysis のスキャンの実行時に、コンパイル・エラーの原因になります。
- オプション: プロジェクト用の追加の必須コンパイラー・パラメーターを指定します。
コンパイル・オプションは、コンパイラーに渡してソース・ファイルをコンパイルするためのオプションです。例えば、-source 1.5
は、プロジェクトのソース・レベルを指定します。
-
JDK の使用: このコードのスキャン時に使用する Java 開発キット (JDK) を指定します。デフォルトでは、「AdoptOpenJDK 11」 が使用されます。AppScan ソース では 「JDK 1.8」(64 ビット) も選択できます。追加の JDK を定義するまたは別のデフォルト JDK を設定するには、「Java および JSP」設定を使用します。代替 JDK を指定する場合は、64 ビットである必要があります。
注: 製品に付属する JSP プロジェクトのデフォルト・コンパイラーは、Tomcat 7 です。これには、Java バージョン 1.6 以上が必要です。Tomcat 7 をデフォルトのまま使用している場合、古い JDK を選択すると、以下のスキャン中のコンパイル・エラーが発生します。
- 「検証」アクションを使用すれば、プロジェクト依存関係を確実に正しく構成できます。Java プロジェクト内でソースとクラス・パスの間の構成競合をチェックするとともに、コンパイル・エラーもチェックします。クラス・パス内のクラスがソース・ルート内のクラスと重複している場合、競合が存在します。
競合が存在する場合、検証テキスト領域には、JAR またはクラス・パス上でクラスが定義されている場所と、ソース内に重複が存在するかどうかが表示されます。クラス・パスから競合を取り除いて、チェックを再実行します。
競合をチェックした後で、「検証」をクリックして、プロジェクトをコンパイルできるかどうか、およびコンパイル・エラーがレポートされるかどうかを判別します。
- プリコンパイル済みクラス: このフィールドは、スキャン中にコンパイルするのではなく、プリコンパイル済みの Java または JSP クラス・ファイルを使用できるようにします。
- コンパイル・エラーの影響を最小化するためにソース・ファイルをステージングする: ソース・コードが正常にコンパイルされ、パッケージと一致するディレクトリーに正しく配置されている場合は、チェック・ボックスをクリアします。
- ディレクトリー構造と一致しないパッケージの修正: パッケージがディレクトリー構造と一致しない場合に選択します。
- スキャンの合間にステージング領域をクリーンアップ: 最適化オプション。
- [完了] をクリックします。
タスクの結果
ヒント:
Java をスキャンしており、Java プロジェクトに欠落依存関係がある場合、
AppScan ソース は、依存関係が提供するはずだった部分を合成することで、トレースを作成します。この合成には
.jar ファイル内の情報が正確に反映されない場合があります。合成を制限することで検出結果の精度を高めるには、次のように、失われた依存関係を指定できます。
- スキャン後に、<data_dir>\logs\StaticAnalyzer-Errors.log (<data_dir> は AppScan ソース プログラム・データの場所です。詳細は インストールとユーザー・データ・ファイルの場所) を開いて AppScan ソース が欠落している依存関係を報告しているかどうかを確認します。
- 依存関係を組み込むようにプロジェクト・プロパティーを変更します。そのためには、アプリケーション・プロパティーおよびプロジェクト・プロパティーの変更 の指示に従い、「JSP プロジェクト依存関係」または「プロジェクト依存関係」タブにおき依存関係を指定し保存します。
- プロジェクトを再スキャンします。
注:
デフォルトでは、
AppScan ソース は、依存関係の欠落やコンパイル・エラーについて Java ファイルや Java バイトコードをスキャンします。次のように、これらの設定を変更できます。
- <data_dir>\config\scan.ozsettings をテキスト・エディターで開きます。
- コンパイル・エラーの設定を変更するには、ファイル内で
compile_java_sources_with_errors
を見つけます。この設定は、以下の例のようになります。<Setting
name="compile_java_sources_with_errors"
value="true"
default_value="true"
type="bool"
hidden="true"
display_name="compile_java_sources_with_errors"
description="Attempt to scan java code with compilation errors."
/>
- 欠落依存関係の設定を変更するには、ファイル内で
scan_without_dependency_jar
を見つけます。この設定は、以下の例のようになります。<Setting
name="scan_without_dependency_jar"
value="true"
default_value="true"
type="bool"
hidden="true"
display_name="scan_without_dependency_jar"
description="Scans Java bytecode even when some of
the dependencies are missing by artificially
synthesizing the unresolved symbols."
/>
- この設定では、
value
属性を変更します。属性が true
に設定されている場合、この設定はオンになります。コンパイル・エラーの設定が false
になっている場合、AppScan ソース はスキャン中にコンパイル・エラーのある Java コードをスキップします。欠落依存関係の設定が false
になっている場合、AppScan ソース は欠落している依存関係が存在するかどうかについて、Java バイトコードをスキャンしません。
- この設定の変更後、ファイルを保存してAppScan ソース を始動または再始動します。