新增 Java 或 JavaServer Pages (JSP) 專案

將新 Java 專案新增到應用程式時,請指定專案名稱,瀏覽至工作目錄,然後指定原始碼根目錄和專案相依關係。

執行這項作業的原因和時機

這個主題中的步驟會引導您完成「新建專案精靈」(如果您是在應用程式中建立專案,則為「新建應用程式」精靈)中的所有頁面。不過,精靈中有些頁面是選用的(當完成按鈕啟動時,表示已完成必要設定)。當您在所選專案的「內容」視圖中建立專案之後,可以修改精靈中的設定。當您完成「新建專案精靈」時,如果沒有完成其中的選用頁面,之後可以在「內容」視圖中,從那些頁面來變更設定。

程序

  1. 在「瀏覽器」視圖中,選取專案要新增到其中的應用程式(如果尚未新增應用程式,請參閱配置應用程式)。
  2. 完成下列其中一個動作,以開啟「新建專案精靈」:
    1. 從主工作台功能表中,選取檔案 > 新增專案 > 新建專案
    2. 用滑鼠右鍵按一下所選的應用程式,然後從快速功能表中,選擇新增專案 > 新建專案
  3. 在精靈的「選取專案類型」頁面中,選取 Java/JSP 作為專案類型,然後按下一步,進入精靈的下一頁。
  4. 在「專案來源」精靈頁面中,執行下列動作:
    1. 識別專案來源,專案來源由若干目錄組成,在這些目錄中,您將尋找專案檔及任何要併入專案中的個別檔案。

      為專案命名並指定工作目錄。工作目錄AppScan® 專案檔 (.ppf) 的位置,且是所有相對路徑的基本目錄。

    2. 手動新增原始碼根目錄,或讓 AppScan® Source for Analysis 自動尋找所有有效的原始碼根目錄。
      重要:
      • 如果要分析 Java 類別檔,您必須透過使用 -g 選項的 javac 來編譯它們。AppScan® 分析需仰賴這個選項所產生的除錯資訊。
      • 如果專案中有包含國家語言字元的 Java 原始檔,而且您所執行的語言環境並不是原生語言環境(如 UTF-8),則掃描會失敗,主控台會出現錯誤及/或警告。
      • 如果要自動尋找原始碼根目錄,請執行下列動作:
        1. 按一下尋找原始碼根目錄,瀏覽至原始碼的根目錄。
        2. 從所找到的所有原始碼根目錄的清單中,選取要新增到專案中的原始碼根目錄。「選取原始碼根目錄」對話框
        3. 按一下確定。要併入掃描的來源會出現在專案來源對話框中。
      • 如果要手動尋找原始碼根目錄,請執行下列動作:
        1. 按一下新增原始碼根目錄
        2. 選取原始碼根目錄或檔案。
        3. 按一下確定。新增原始碼根目錄之後,您可以從其中排除特定目錄或檔案。如果要執行這個動作,請選取目錄或檔案(或複選這些項目),用滑鼠右鍵按一下選項,然後從功能表中選取排除。如果您併入或排除檔案,檔名左側的圖示也會改變。

      按一下完成來新增專案,而不設定專案相依關係;或按下一步來識別專案相依關係。

  5. 在「JSP 專案相依關係」頁面中,執行下列動作:
    1. 識別 JavaServer Pages (JSP) 專案相依關係:如果是包含 JavaServer Pages 的 Java 專案,則識別 JSP 專案相依關係。如果專案是包含 JavaServer Pages 的 Web 應用程式,請選取包含 Web (JSP) 內容勾選框。JSP 專案相依關係
    2. 手動選取 Web 環境定義根目錄,或按一下尋找來尋找它。Web 環境定義根目錄是一個 WAR 檔,或一個含有 WEB-INF 目錄的目錄。Web 環境定義根目錄必須是有效 Web 應用程式的根目錄。
    3. 選取專案的 JSP 編譯器。依預設,Tomcat 9 是預設 JSP 編譯器設定(您可以在 Java 和 JSP 喜好設定頁面中變更預設 JSP 編譯器)。如果要瞭解 AppScan® 支援的編譯器,請參閱 系統需求和安裝必備項目

      AppScan® 的安裝架構包含 Apache Tomcat 第 8 版和第 9 版。如果未配置 Tomcat 8Tomcat 9 喜好設定頁面,AppScan® 會利用提供的 Tomcat JSP 編譯器(目前標示為預設編譯器)來編譯 JSP 檔。如果您想要使用外部支援的 Tomcat 編譯器,請利用 Tomcat喜好設定頁面來指向您的本端 Tomcat 安裝架構。

      如果您使用 Oracle WebLogic 伺服器WebSphere® 應用程式伺服器,您必須配置適用的喜好設定頁面來指向應用程式伺服器的本端安裝架構,以便在分析期間用來編譯 JSP。如果您尚未完成此配置,當您選取 JSP 編譯器時,會出現訊息來提示您這麼做。如果您在訊息中按一下,就會看到適當的喜好設定頁面。如果您按一下,JSP 編譯器選項旁邊會顯示警告鏈結(遵循此鏈結會開啟喜好設定頁面)。

    按一下完成來新增含有 JSP 專案相依關係的專案;或按下一步來識別 Java 專案相依關係。
  6. 在「Java 專案相依關係」頁面中,識別建置這個 Java 專案所需要的相依關係:
    1. 手動新增 JAR 檔,或按一下尋找,讓 AppScan® Source for Analysis 搜尋含有相依的 JAR 和類別檔的目錄。

      類別路徑清單會顯示專案的相對路徑。類別路徑必須指定必要的 JAR 檔,以及專案需要的類別檔所在的目錄。

      Java 專案相依關係
      • 新增移除上移下移:在類別路徑中新增或移除檔案,或按次序將它們上移或下移。
      • 尋找:根據專案中的原始檔來尋找 JAR 和類別路徑項目。
      重要: 如果 Java 專案包含 JavaServer Pages,您也必須新增「JSP 專案相依關係」。
      • 如果要手動尋找專案相依關係,請執行下列動作:
        1. 在「類別路徑」區段工具列中按一下新增,然後選取編譯 JAR 專案所需要的 Java 和類別檔目錄。
        2. 按一下確定JAR 檔和目錄會出現在類別路徑中。請依照需要來變更順序。
      • 如果要自動尋找相依關係,請執行下列動作:
        1. 按一下「類別路徑」區段工具列中的尋找
        2. 指定目錄,以便在其中尋找編譯 JAR 專案所需要的 Java 和類別檔。
        3. 如果您想讓 AppScan® Source for Analysis 根據來源並利用提供的搜尋路徑,以尋找必要的專案相依關係,請選取在來源和 JAR 檔內查看勾選框。
        4. 下一步,尋找專案相依關係,並識別衝突。
      • 如果要解決衝突,請執行下列動作:
        1. 如果衝突存在,請在「解決衝突」對話框中,選取要解決的項目,然後按一下解決(或按下一步,自動解決衝突)。當 AppScan® Source for Analysis 在滿足相依關係的目錄中,找到多個 JAR 或類別時,就會出現衝突。

          未解決的衝突左側會出現紅色圖示。解決之後,紅色圖示會變成綠色,項目會成為已解決。您也可以移除衝突。

        2. 在解決或移除衝突之後,您可能會想驗證、重新排序或移除類別路徑項目。請記下找不到的匯入項目清單。任何無法分辨的匯入,都會在 AppScan® Source for Analysis 掃描時導致編譯錯誤。
    2. 選項:指定專案所需要的任何其他編譯器參數。

      編譯選項是指傳遞給編譯器以便能編譯原始檔的選項。例如,-source 1.5 指定專案的來源層次。

    3. 使用 JDK:指定當掃描這個程式碼時,所使用的 Java Development Kit (JDK)。依預設會使用 AdoptOpenJDK 11AppScan® 也提供 JDK 1.8(64 位元)供您選擇。如果要定義其他 JDK,或設定不同的預設 JDK,請使用 Java 與 JSP 喜好設定。如果指定了替代 JDK,其必須為 64 位元。
      註: 既有的 JSP 專案預設編譯器是 Tomcat 9,這需要 Java 1.8 版或更新版本。如果保留 Tomcat 8 作為預設值,則使用較舊的 JDK 會導致在掃描期間發生編譯錯誤。
    4. 驗證動作可確保已正確配置專案相依關係。它會檢查 Java 專案在來源和類別路徑之間的配置衝突,也會檢查編譯錯誤。如果在來源根目錄中,類別路徑中的類別重複,就會發生衝突。

      如果有衝突,驗證文字區會顯示類別路徑上定義類別的 JAR 或位置,以及來源中是否有重複。請從類別路徑中移除衝突,然後重新執行檢查。

      檢查衝突之後,驗證會判斷專案是否進行編譯,且會報告任何編譯錯誤。

    5. 經過前置編譯的類別:這個欄位可讓您使用經過前置編譯的 Java 或 JSP 類別檔,而不在掃描期間編譯。
    6. 暫置原始檔,將編譯錯誤的影響減到最少:如果原始碼編譯正確,且在目錄中準確排列,並符合套件,請清除這個勾選框。
    7. 修正不符合目錄結構的套件:如果套件不符合目錄結構,請選取這個選項。
    8. 清除各次掃描之間的暫置區:最佳化選項。
  7. 按一下完成

結果

提示:
如果您要掃描 Java 但 Java 專案中有遺漏的相依關係,AppScan® 會綜合相依關係可能已提供的片段,來建立追蹤資料。此綜合作業未必能精確反映 .jar 檔中的資訊。如果要限制綜合作業,藉此改善發現項目的正確性,在此情況下,您可以依下列方式指定遺漏的相依關係:
  1. 掃描之後,請開啟 <data_dir>\logs\StaticAnalyzer-Errors.log(其中 <data_dir>AppScan® 程式資料的位置,如所述 安裝和使用者資料檔位置,查看 AppScan® 是否已報告遺漏相依關係。
  2. 修改專案內容來併入相依關係。如果要執行這項作業,請遵循修改應用程式和專案內容的指示,然後在 JSP 專案相依關係專案相依關係標籤中指定並儲存相依關係。
  3. 重新掃描專案。
註:
依預設,AppScan® 會掃描含有遺漏的相依關係或編譯錯誤的 Java 檔和 Java 位元組碼。這些設定可以依下列方式加以變更:
  1. 以文字編輯器開啟 <data_dir>\config\scan.ozsettings
  2. 如果要變更編譯錯誤設定,請在檔案中找出 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."
    />
  3. 如果要變更遺漏的相依關係設定,請在檔案中找出 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."
    />
  4. 在設定中,修改 value 屬性。如果該屬性設為 true,這項設定即會開啟。如果編譯錯誤設定設為 falseAppScan® 在掃描期間會略過含有編譯錯誤的 Java 程式碼。如果遺漏的相依關係設定設為 false,當有遺漏的相依關係時,AppScan® 就不會掃描 Java 位元組碼。
  5. 修改好這項設定之後儲存檔案,再啟動或重新啟動 AppScan®