FeaturesPluginsDocs & SupportCommunityPartners

设置项目

下载 PDF

要下载“使用 NetBeans IDE 5.5”的 PDF 版本,请单击此处

此部分介绍了设置 IDE(以便开始开发您自己的项目)的基础知识。管理项目内容和属性的过程主要通过“项目”窗口完成。设置项目过程中的最常见任务包括创建项目、设置项目的目标 JDK,以及配置项目属性以使该项目可以使用资源库。

此部分包含以下主题:

基本 IDE 概念

在开始设置项目之前,让我们先简单了解一下与使用 IDE 有关的一些基本概念。

项目

在 IDE 中,您始终在项目内工作。IDE 项目由一组 Java 源文件和关联信息(如类路径中包含哪些内容、如何生成和运行项目等)组成。您可以创建标准项目(使用 IDE 生成的 Ant 脚本来生成项目),也可以创建基于现有 Ant 脚本的自由格式项目。IDE 将项目信息存储在项目文件夹中,该文件夹包括 Ant 生成脚本、控制生成和运行设置的属性文件,以及将 Ant 目标映射到 IDE 命令的 project.xml 文件。

注意:虽然缺省情况下 IDE 将源目录放置在项目文件夹中,但是源目录并非必须位于项目文件夹中。

下表总结了标准项目和自由格式项目之间的主要区别:

标准项目

自由格式项目

IDE 使用 NetBeans 生成的 Ant 生成脚本来生成、运行、清理、测试和调试应用程序。

IDE 使用现有 Ant 脚本中的目标来生成、运行、清理、测试和调试应用程序。如果 Ant 脚本不包含其中某些功能的目标,则无法使用这些功能。您可以在 Ant 脚本或辅助 Ant 脚本中编写目标来实现这些功能。

一些标准 IDE 项目(Java 应用程序、Java 类库、Web 应用程序、企业应用程序和 EJB 模块)是仅用一个源文件夹创建的,但是您可以添加更多的源文件夹。

基于现有源代码的标准 IDE 项目(Java 应用程序、Web 应用程序、企业应用程序和 EJB 模块)可以具有任意数量的源文件夹。创建项目后,可以添加和删除源文件夹。此外,还可以创建与其他 NetBeans 项目之间的依赖关系。

您还可以通过以下方法在标准项目中使用多个源文件夹:为每个源文件夹创建一个单独的项目,然后创建项目之间的依赖关系。

每个项目都可以具有任意数量的源文件夹。创建项目后,可以添加和删除源文件夹。此外,还可以创建与其他 NetBeans 项目之间的依赖关系。

项目类路径由添加到项目的库控制。可以在“项目属性”对话框的“库”窗格中添加库;或者通过在“项目”窗口中右键单击项目的“库”节点,然后选择“添加库”来添加库。任何更改都会立即注册到 IDE 生成的 Ant 脚本中。

项目类路径由 Ant 脚本控制。“项目属性”对话框的“类路径”页中的类路径设置只通知 IDE 要将哪些类用于代码完成和重构。在 Ant 脚本中更改类路径设置时,必须更新项目属性中的设置。

可使用以下方法来定制生成过程:在“项目属性”对话框中设置基本选项,或者在 NetBeans 生成的 Ant 脚本中覆盖目标。

所有编译和运行时选项都是在 Ant 生成脚本中设置的。

IDE 为项目生成一个 JAR 文件(对于 J2SE 项目)或 WAR 文件(对于 Web 项目)。

IDE 生成的输出文件数量与在项目的 Ant 脚本中指定的文件数量相同。

IDE 包含以下标准项目的模板:

Java 应用程序图标

Java 应用程序图标

Java 应用程序。用于创建带有主类的框架 J2SE 项目的模板。

Java 应用程序图标

Java 应用程序图标

Java 类库。用于创建不带主类的框架 Java 类库的模板。

Java 应用程序图标

Java 应用程序图标

基于现有源代码的 Java 项目。用于基于您自己的 Java 源代码创建 J2SE 项目的模板。

Web 应用程序图标

Web 应用程序图标

Web 应用程序。用于创建框架 Web 应用程序的模板。

Web 应用程序图标

Web 应用程序图标

基于现有源代码的 Web 项目。用于基于您自己的 Web 和 Java 源代码创建 Web 项目的模板。

企业应用程序图标

企业应用程序图标

企业应用程序。用于创建框架企业应用程序的模板。

企业应用程序图标

企业应用程序图标

基于现有源代码的企业应用程序。用于将企业应用程序导入标准 IDE 项目的模板。

EJB 模块图标

EJB 模块图标

EJB 模块。用于创建 Enterprise JavaBeans 模块的模板。

EJB 模块图标

EJB 模块图标

基于现有源代码的 EJB 模块。用于将 Enterprise JavaBeans 模块导入标准 IDE 项目的模板。

IDE 包含以下自由格式项目的模板:

自由格式项目图标

自由格式项目图标

包含现有 Ant 脚本的 Java 项目。用于基于您自己的 Java 源代码创建 J2SE 项目的模板,使用您自己的 Ant 生成脚本来生成项目。

自由格式项目图标

自由格式项目图标

包含现有 Ant 脚本的 Web 项目。用于基于您自己的 Web 和 Java 源代码创建 Web 项目的模板,使用您自己的 Ant 生成脚本来生成项目。

自由格式项目图标

自由格式项目图标

包含现有 Ant 脚本的 EJB 模块。用于将 EJB 模块导入 IDE 项目(使用您自己的 Ant 生成脚本)的模板。

Ant

Apache Ant 是基于 Java 的生成工具,用于使生成环境和运行环境标准化和自动化以便进行开发。IDE 的项目系统是在 Ant 的基础之上直接构建的。所有项目命令(如“生成主项目”或“调试主项目”)均调用项目 Ant 脚本中的目标。因此,您可以在 IDE 外部生成和运行项目,这与在 IDE 内部生成和运行项目完全相同。

您无需了解 Ant 即可使用 IDE。您可以在项目的“项目属性”对话框中设置所有基本的编译和运行时选项,IDE 会自动更新项目的 Ant 脚本。如果您熟悉 Ant,则可以定制标准项目的 Ant 脚本,或者为项目编写您自己的 Ant 脚本。

即使您是使用 Ant 的专家,在每次使用 Ant 时,也可能仍然需要查看 Ant 手册。通过转至 NetBeans 更新中心并安装 Ant 文档模块,可以直接在 IDE 帮助系统中安装 Ant 手册。有关使用更新中心的详细信息,请参见从更新中心安装新模块

如果要查找有关了解 Ant 的资源,请参见 http://ant.apache.org/resources.html

创建项目

要创建新的项目,请选择“文件”>“新建项目”(Ctrl-Shift-N)。在出现“新建项目”向导时,只需为项目选择合适的模板并完成向导中的其余步骤即可。

有关使用“新建项目”向导的说明,请参见以下文档:

在创建完项目后,将在 IDE 中打开该项目,并在“项目”窗口中显示其逻辑结构,同时在“文件”窗口中显示其文件结构:

  • “项目”窗口是项目源代码的主入口点。它将显示重要项目内容(如 Java 包和 Web 页)的逻辑视图。通过右键单击任何项目节点,可以访问包含命令的上下文菜单,这些命令用于生成、运行和调试项目,以及打开“项目属性”对话框。通过选择“窗口”>“项目”(Ctrl-1),可以打开“项目”窗口。
  • “文件”窗口将显示基于目录的项目视图,包括未在“项目”窗口中显示的文件和文件夹。在“文件”窗口中,可以打开并编辑项目配置文件,如项目的生成脚本和属性文件。此外,还可以查看生成输出,如编译的类、JAR 文件、WAR 文件和生成的 Javadoc 文档。通过选择“窗口”>“文件”(Ctrl-2),可以打开“文件”窗口。

此外,还可以使用“收藏夹”窗口访问计算机上的任何位置。这样,您就可以方便地访问项目目录之外的文件和目录。“收藏夹”窗口不包含有关项目类路径和成员身份的任何信息,因此任何与项目相关的命令(如“编译文件”)都不可用。您可以通过在“收藏夹”窗口中双击类文件打开该文件,但是由于没有与该文件关联的类路径信息,因此在源代码编辑器中查看该文件时可能会看到编译错误。通过选择“窗口”>“收藏夹”(Ctrl-3),可以打开“收藏夹”窗口。

“文件”和“项目”窗口的屏幕快照

“项目”和“文件”窗口

设置主项目

在开发由很多源文件夹组成的大型应用程序时,经常会将代码拆分为几个单独的项目。通常,其中的一个项目将作为应用程序的入口点;对于 J2SE 应用程序,此项目还包含应用程序的主类。为了让 IDE 知道哪个项目是应用程序的主入口点,可以将一个项目设置为主项目。IDE 提供了专门用于主项目的命令。例如,通过运行“生成主项目”命令,可以生成主项目及其所有必需项目,从而确保所有已编译的类都处于最新状态。要将某一项目设置为主项目,请在“项目”窗口中右键单击该项目的节点,然后选择“设置为主项目”。在任何时候,只能有一个项目是主项目。

导入项目

通过使用“新建项目”向导中的项目模板,可以将您的项目导入 NetBeans 中,以便创建基于您的项目类型的 NetBeans 项目。在“新建项目”向导中选择项目类型后,选择使用现有源代码的项目模板,或者如果要导入的项目已具有 Ant 脚本,则选择使用现有 Ant 脚本的模板。逐步执行向导以找到要为创建项目而导入的源代码。根据所选模板的不同,IDE 将创建基于现有源代码的标准项目或使用现有源代码和 Ant 脚本的自由格式项目。

有关将源代码导入 IDE 中的详细信息,请参见以下分步指南:

设置项目中的目标 JDK

缺省情况下,IDE 将其运行时所使用的 J2SE 平台 (JDK) 版本用作缺省的 Java 平台,以便进行编译、执行和调试。通过选择“帮助”>“关于”并单击“详细信息”标签,可以查看 IDE 的 JDK 版本。JDK 版本在 "Java" 字段中列出。

通过从命令行或在 IDE-HOME/etc/netbeans.conf 文件中使用 --jdkhome jdk-home-dir 开关启动 IDE,可以使用不同的 JDK 版本运行 IDE。有关详细信息,请参见配置 IDE 启动开关

在 IDE 中,可以注册多个 Java 平台,并将 Javadoc 和源代码连接到每个平台上。切换标准项目的目标 JDK 将执行以下操作:

  • 提供新目标 JDK 的类,以用于代码完成。
  • 显示目标 JDK 的源代码和 Javadoc 文档(如果可用)。
  • 使用目标 JDK 的可执行文件(javacjava)编译和执行应用程序。
  • 针对目标 JDK 的库来编译源代码。

通过执行以下操作可以切换项目的目标 JDK:

  • 标准项目。对于标准项目,可以在“项目属性”对话框的“库”面板中切换目标 JDK。
  • 自由格式项目。对于自由格式项目,必须先在 Ant 脚本自身中设置目标 JDK,然后在“项目属性”对话框的“源”页中指定源代码级别。之所以在“项目属性”对话框中设置源代码级别,是因为 IDE 要根据该级别来确定用于项目的 Javadoc 和源代码的 JDK。如果 IDE 找不到与指定的源代码级别相对应的 JDK,则将使用 IDE 的缺省 JDK。

要注册新的 Java 平台,请从主菜单中选择“工具”>“Java 平台管理器”。指定包含 Java 平台的目录以及调试所需的源代码和 Javadoc。

“Java 平台管理器”的屏幕快照

Java 平台管理器

管理项目的类路径

通过将一组类文件添加到项目的类路径中,可以通知 IDE 在编译和执行期间项目应该能够访问哪些类。IDE 还使用类路径设置来启用代码完成、自动突出显示编译错误以及重构。您可以在“项目属性”对话框中编辑现有项目的类路径声明。

  • 标准项目。在标准项目中,IDE 将为编译和运行项目以及编译和运行 JUnit 测试(用于 J2SE 应用程序)保留单独的类路径。IDE 自动将项目编译类路径中的所有内容添加到项目的运行时类路径中。在“项目属性”对话框的“编译”标签中,可以将 JAR 文件、库和相关项目添加到项目的编译类路径中。此外,也可以在“项目”窗口中右键单击“库”节点,然后将 JAR 文件、库和项目添加到您的项目中。
  • 自由格式项目。在自由格式项目中,将由 Ant 脚本处理所有源文件夹的类路径。在建立自由格式项目时,可以在“新建项目”向导中声明类路径。自由格式项目的类路径设置只通知 IDE 哪些类可用于代码完成和重构。使用“项目属性”对话框中的“Java 源代码类路径”面板,可以声明自由格式项目的类路径。有关详细信息,请参见下面的在自由格式项目中管理类路径

如果已经在库管理器中将 Javadoc 和源文件附加到某个 JAR 文件,则在项目的类路径中注册该 JAR 文件时,IDE 会自动将 Javadoc 和源文件添加到项目。可以步入类并在 Javadoc 页中查找类,而无需配置任何其他内容。

项目属性对话框的屏幕快照

“项目属性”对话框

管理项目之间的依赖关系

如果每个源根目录都是单独的标准项目,则必须在项目之间建立类路径依赖关系。通常,设置一个包含项目主类(在 J2SE 项目中)的主项目和几个必需项目。必需项目是指已添加到其他项目类路径中的项目。在清理并生成某个项目时,IDE 还会清理并生成其必需项目。接收项目也可以使用必需项目的 Javadoc 和源代码。

通过在“项目”窗口中右键单击“库”节点,可以将任何必需项目添加到您的项目中;或者也可以通过在“项目属性”对话框的“编译”标签中指定它们来进行添加。当添加必需的项目时,请选择要将其 JAR 文件添加到类路径的项目文件夹(文件选择器将显示 IDE 项目文件夹的图标 项目文件夹图标)。在“项目属性”对话框中添加项目时,请确保选中了“在类路径上生成项目”复选框。

如果要将自由格式项目添加到标准项目的类路径中,则必须将自由格式项目的 JAR 文件添加到标准项目的类路径中。要执行此操作,必须先在自由格式项目的“项目属性”对话框的“输出”面板中声明自由格式项目的所有输出文件。

设置自由格式项目

在自由格式项目中,IDE 使用现有 Ant 脚本中的目标生成、运行、清理、测试和调试应用程序。如果 Ant 脚本不包含其中某些功能的目标,则无法使用这些功能。要实现这些功能,您可以在 Ant 脚本或辅助 Ant 脚本中编写目标。

有关设置自由格式项目的详细信息,请参见以下文章:

编辑并运行 Ant 脚本

IDE 将自动识别 Ant 脚本,并将其显示为 Ant 脚本节点 (Ant 脚本节点的图标) 而不是通常的 XML 文件。您可以在“项目”窗口、“文件”窗口或“收藏夹”窗口中右键单击 Ant 脚本来访问命令的弹出式菜单。您还可以展开 Ant 脚本节点,以查看表示 Ant 脚本目标的子节点的列表(按字母顺序排列)。其中的每个子节点也都具有命令的上下文菜单。

在“项目”、“文件”和“收藏夹”窗口中,Ant 脚本的子节点是采用以下方式标记的:

强调的 Ant 目标图标
 

强调的 Ant 目标

强调的 Ant 目标。这些目标包含以工具提示方式显示的描述属性。目标的描述属性是在源代码编辑器中定义的。

常规 Ant 目标图标  

常规 Ant 目标

常规 Ant 目标。不带有描述属性的目标。

编辑 Ant 脚本的唯一方法是在源代码编辑器中进行编辑。双击 Ant 脚本的任何子节点,可以跳到源代码编辑器中的该目标位置上。所有的常规 XML 搜索工具、选择工具和快捷键都可用于编辑 Ant 脚本,而且 IDE 为所有标准 Ant 任务提供了代码完成。

创建要从命令行运行的目标时,可以为该目标指定描述属性。如果忘记了目标的名称或作用,则可以从命令行运行 ant -projecthelp <script> 命令。使用此命令时,Ant 仅列出具有描述属性的那些目标及其描述。尤其是当 Ant 生成脚本中存在许多目标时,您可以在强调一些目标的同时取消强调另一些目标,通过这种有用的方式可以将那些常用目标和不常用目标区别开来。

“项目”、“文件”和“收藏夹”窗口中子节点标签的字体样式指示以下信息:

  • 正常
    在当前 Ant 脚本中定义的目标。
  • 斜体
    从另一个 Ant 脚本中导入的目标。
  • 灰显
    无法直接运行的内部目标。内部目标的名称以 '-' 开头。
  • 粗体
    脚本的缺省目标(如果有目标)。缺省目标和其他项目属性(如其名称)一起被声明为项目的属性。项目的缺省属性是在源代码编辑器中定义的。

未列出从其他脚本导入但在导入脚本中被覆盖的目标。仅列出覆盖目标。

在“项目”窗口、“文件”窗口或“收藏夹”窗口中,可以从 Ant 脚本的节点运行 Ant 脚本中的目标。要执行此操作,请右键单击 Ant 脚本节点,然后从“运行目标”子菜单中选择目标。目标按字母顺序排列,而且仅列出强调的目标。选择“其他目标”可运行未使用描述属性强调的目标。由于内部目标不能独立运行,因此它们未包含在这些列表中。

您无需通过使用 Ant 脚本节点的上下文菜单来运行目标,只需右键单击目标的节点,然后选择“运行目标”即可。

显示运行 Ant 目标的屏幕快照

运行 Ant 目标

在自由格式项目中管理类路径

在自由格式项目中,将由 Ant 脚本处理所有源文件夹的类路径。要使项目源代码可供 Ant 使用,您需要指定项目源代码的类路径。如果具有任何定制任务,则还需要将这些任务添加到 Ant 的类路径中。

有关使用您自己的 Ant 脚本编译、运行和调试自由格式项目的详细信息,请参见以下文章:

指定项目源代码的类路径

在自由格式项目中,要通知 IDE 哪些类可用于代码完成和重构,并指定这些项目源代码的类路径。请在“项目属性”对话框的“Java 源代码类路径”设置中指定类路径。之所以这样做,是因为缺省情况下 IDE 只要运行 Ant 就会忽略环境的 CLASSPATH 变量。

在“项目属性”对话框中设置的类路径变量不影响项目的实际类路径(在 Ant 脚本中指定)。在“项目属性”对话框中声明类路径时,并不会更改源文件夹的实际编译或运行时类路径。但是,项目类路径变量必须与 Ant 脚本使用的类路径匹配,这样才能为代码完成、错误突出显示和重构命令提供正确的信息。由于 IDE 在运行 Ant 时会忽略环境的 CLASSPATH 变量,因此必须在生成脚本中设置显式类路径。如果更改一方的类路径,则也必须更改另一方的类路径。

指定定制任务的类路径

在自由格式项目中,可以在生成脚本中调用和运行定制 Ant 任务。为使 Ant 脚本能够使用定制任务,必须将这些任务包含在 Ant 脚本的类路径中。例如,您可能要将一个任务添加到您的生成脚本中,以便使用 Jalopy 设置代码格式。但是,为了执行此操作,您必须将 Jalopy JAR 文件添加到 Ant 的类路径中。

通过执行以下任一操作,可以在 IDE 中将定制任务添加到 Ant 的类路径中:

  • 在您的生成脚本中提供到任务的显式类路径。推荐使用此方法指定包含 Ant 脚本所用定制任务的 JAR 文件的位置,因为它确保了生成脚本将是完全可移植的。您可以在生成文件中编写自己的任务以及添加指令,以进行编译和产生 JAR 文件。在使用这些任务时,需要加入一个长 taskdef 标记,并在其中包含类路径。下面是此类任务的一个简单示例:
<project name="test" default="all" basedir=".">
    <target name="init">
        <javac srcdir="tasksource" destdir="build/taskclasses"/>
        <jar jarfile="mytasks.jar">
            <fileset dir="build/taskclasses"/>
        </jar>
        <taskdef name="customtask" classname="com.mycom.MyCustomTask">
            <classpath>
                 <pathelement location="mytasks.jar"/>
            </classpath>
        </taskdef>
    </target>
</project>

这种方法的优点在于不需要特殊准备即可开始使用脚本。该脚本完全是自包含并可移植的。此方法还使您在 IDE 中开发任务变得更容易,因为脚本会自动为您编译这些任务。

要使您的生成脚本更加稳定,请使用属性来代替固定编码位置,用以指定任务的类路径。您可以将该属性存储在生成脚本自身或单独的 ant.properties 文件中。然后,只更改指定属性的值就可以使整个脚本的类路径设置得到更改。

  • 在“选项”窗口中配置 Ant 类路径属性。如果无法在生成脚本中声明类路径,或使用无法更改的第三方生成脚本,则可以在“选项”窗口中将任务添加到 IDE 中的 Ant 类路径。

注意:如果在“选项”窗口中修改 Ant 类路径,则在 IDE 中运行 Ant 时,任务将位于所有项目的 Ant 类路径上。


目录 - 下一部分

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by