因为二进制项目只在编译和构建期间存在于工作空间中以供参考,所以使用二进制项目可以优化大型企业应用程序的开发。如果在工作空间中构建所有内容要花一些时间,二进制项目对您的小组可能有所帮助。
例如,如果企业应用程序包含 20 个 EJB 模块和 1 个
Web 模块,并且如果在每次编译 Web 模块时并不构建所有 EJB 模块,则 Web 模块提供程序的工作效率会更高。如果开发小组内的职责分明,则二进制项目会运作得很好。注意,使用二进制项目会增加开发过程的复杂性,因此,它们对大型应用程序最有用。如果您的应用程序较小,其构建时间不成问题,则将项目保留为源代码。
当您导入在选择包括项目构建路径和元数据文件选项的情况下导出的 EAR 时,将会创建二进制项目。如果在导入过程中选择导入用于部分 EAR 开发,则可以选择要作为二进制项目导入的项目。对于二进制 Web 项目,Web 项目中的 Java™ 源代码仍在工作空间中扩展。缺省情况下,二进制项目将禁用验证构建器。缺省情况下,二进制 Web 项目将禁用链接构建器和验证构建器。
有关导入期间创建二进制项目的更多信息,请参阅导入企业应用程序 EAR 文件。
二进制项目结构
下列规则定义二进制项目:
- Java 构建路径没有源容器
- 项目在其构建路径上只有一个 JAR,且它已导出。
- 对于 EJB 和应用程序客户机模块,为 JAR 装入了元数据资源(例如,ejb-jar.xml)以显示在“项目资源管理器”视图或只读编辑器中。
- Web 项目的结构与源项目的结构是相同的,只不过 Web 项目关闭了验证器。
使用二进制项目的过程流
对于使用源代码控制(例如,CVS)的小组,正常过程可能包括:
- 每晚运行构建或导出包含源代码的 EAR 文件。在导出期间,已选择该选项以包括项目构建路径和元数据文件。这将保留模块与
JAR 名称之间的映射以及外部依赖项。例如,假定您具有依赖于外部
JAR 文件(例如 xerces.jar)的 Java 项目,并且此 JAR 位于构建路径上。您可以通过选择包含选项来确保保留了映射。
- 然后,各个开发者可以使用导入用于部分 EAR 开发选项将 EAR 导入其工作空间中。
- 接着,每个开发者可以选择仅将某些模块导入其工作空间(假设他们未导入的项目已连接至资源库)。另外,开发者可以将二进制项目替换为资源库中适当的源(开发者正在积极开发的源)。
二进制项目的功能和局限性
- 将禁用对应用程序客户机或 EJB 模块中的资源的修改。例如,不能编辑二进制项目中的部署描述符。仍然可以使用适当的编辑器打开资源,但是,文件将是只读的并且将禁用窗口小部件。
- EAR 导入(可作为“导入”向导的一个选项使用)创建的二进制项目用于只读。不应该尝试修改二进制项目的内容。但是,可以删除二进制项目和将它替换为资源库的源版本。对于二进制项目,应该禁用大多数操作。如果使用二进制项目,则尝试避免修改项目或
JAR 内容的任何操作。