添加新 Java 或 JavaServer Page (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 Page (JSP) 项目依赖关系:对于包含 JavaServer Page 的 Java 项目,确定 JSP 项目依赖性。如果项目是含有 JavaServer Page 的 Web 应用程序,那么请选中包含 Web (JSP) 内容复选框。
      JSP 项目依赖性
    2. 手动选择 Web 上下文根,或者单击查找以找到此根。Web 上下文根是包含 WEB-INF 目录的 WAR 文件或目录。Web 上下文根必须是有效 Web 应用程序的根目录。
    3. 为项目选择 JSP 编译器。现成可用的 Tomcat 9 是缺省 JSP 编译器设置(缺省 JSP 编译器可以在 Java 和 JSP 首选项页面中进行更改)。要了解 AppScan® 支持的编译器的相关信息,请参阅系统需求和安装必备软件

      Apache Tomcat V8 和 V9 包含在 AppScan® 的安装中。如果未配置 Tomcat 8Tomcat 9 首选项页面,那么 AppScan® 将使用当前提供且标记为缺省选项的 Tomcat JSP 编译器来编译 JSP 文件。如果您想要运用外部受支持 Tomcat 编译器,请使用 Tomcat 首选项页面来指向本地 Tomcat 安装版。

      如果使用的是 Oracle WebLogic ServerWebSphere® Application Server,那么必须将适用的首选项页面配置为指向应用程序服务器的本地安装版,以便其可在分析期间用于 JSP 编译。如果尚未完成该配置,那么选择 JSP 编译器时将显示一条消息以提示您完成配置。如果单击消息中的,那么您将被转至相应的首选项页面。如果单击,那么 JSP 编译器选择旁边将显示一条警告链接(访问该链接将打开首选项页面)。

    单击完成以添加带有 JSP 项目依赖性的项目 - 或单击下一步以确定 Java 项目依赖关系。
  6. 在“Java 项目依赖性”页面中,确定构建此 Java 项目所需的依赖关系:
    1. 手动添加 JAR 文件,或者单击查找以让 AppScan® Source for Analysis 搜索包含依赖的 JAR 和类文件的目录。

      类路径列表显示了该项目的相对路径。类路径必须指定所需的 JAR 文件和含有项目所需的类文件的目录。


      Java 项目从属项
      • 添加除去上移下移:在类路径中添加或除去文件,或者按顺序将其上移或下移。
      • 查找:根据项目中的源文件查找 JAR 和类路径条目。
      重要: 如果 Java 项目包含 JavaServer Page,那么还必须添加 JSP 项目依赖关系。
      • 要手动查找项目依赖关系,请执行以下操作:
        1. 单击“类路径”部分工具栏中的添加,然后选择编译 Java 项目所需的 JAR 和类文件目录。
        2. 单击确定JAR 文件和目录将显示在类路径中。如有必要,请更改顺序。
      • 要自动查找依赖关系,请执行以下操作:
        1. 单击“类路径”部分工具栏中的查找
        2. 指定要在其中查找编译 Java 项目所需的 JAR 和类文件的目录。
        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 V1.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,该设置将打开。如果编译错误设置设置为 false,那么 AppScan® 将在扫描期间跳过有编译错误的 Java 代码。如果缺少的依赖关系设置设置为 false,那么缺少依赖关系时 AppScan® 将不会扫描 Java 字节码。
  5. 在修改该设置后保存文件,并启动或重新启动 AppScan®