WebObjects/Web 应用程序/部署
Xcode 预期获取给定的文件集,如“组和文件”窗格中列出的文件集,并从中构建一个成品或一组产品,例如应用程序、框架、库或命令行工具。
这里值得注意的是,此窗格中表示的项目有四种类型:文件、目录、包和组。文件就是文件,各种类型的文件,扩展名指示类型,例如 .java、.jpg、.gif、.html。目录表示文件系统中某个位置的真实目录,并以蓝色文件夹图标表示。包是 Mac OX X 中的一个术语,指的是文件和子目录的目录,这些文件和子目录要被 Finder 和 Xcode 识别为一个单元。它们通常以与文件图标无法区分的图标表示。如果 Xcode 不熟悉所表示的包类型,则会将其显示为蓝色文件夹。组是这种分类中的奇怪项目,并以黄色文件夹表示。它们在文件系统中根本不存在。它们纯粹是用于您在 Xcode 中使用的组织实体。您可以在 Xcode 组中将文件分组到“组和文件”窗格中,这些文件实际上分布在您计算机的文件系统中。您在“组和文件”窗格中使用它们只是为了将这四种类型中您认为相关的项目分组在一起。
回到 Xcode 的产品,对于典型的、简单的、非 WebObjects 项目,这些文件将包含 Java 或 Objective C 源文件,这些源文件将被编译成中间目标文件,并链接到可加载模块(对于 Objective C)或 .jar 文件(对于 Java)以供执行。该文件是为执行而创建的,这就是我所说的产品。Xcode 目标是文件集以及构建此类产品的必要指令。它将通过 Xcode 构建过程创建。
在 WebObjects 的情况下,情况略微复杂,因为最佳实践建议使用所谓的“拆分安装”。也就是说,对于 WebObjects 项目,Xcode 预期构建至少两个产品。其中一个将是 WebObjects 应用程序,它将由应用程序服务器提供服务。另一个将是静态 HTML 页面、图形文件(.jpg 和 .gif 文件等)和其他可以由 Apache 直接作为静态资源提供服务的文件的包。
您添加到项目中的文件必须被识别为属于这两个产品中的一者的构建。第三个目标与您的项目同名,它被称为聚合目标。它的唯一目的是将其他两个目标分组到单个构建操作中,通过设置依赖项,使聚合目标依赖于另外两个目标。这样,通过构建聚合目标,另外两个目标将自动一起构建。但是,您也可以要求 Xcode 单独构建这两个目标中的任何一个。
虽然您应该将静态文件添加到项目中,以便它们包含在项目目录中,但 Xcode 将构建两个包,一个用于应用程序服务器,另一个用于 Web 服务器,并将创建(例如,通过编译)或复制相应的文件到相应的包。如果您的项目名为“MyProject”,并且是在 Mac OS X 上进行部署构建的,那么这些包将具有以下结构
对于应用程序服务器
MyProject.woa MyProject - a Unix shell script to which control is initially passed and which sets up the execution environment under Unix MyProject.CMD - a DOS command script to which control is initially passed and which sets up the execution environment under DOS/Windows WOBootstrap.jar - a jar file containing a single class called JavaArchiveFilter that implements the java.io.FilenameFilter interface Contents - a directory containing all of the files necessary to support the execution of the WO app Info.plist - a property list file for the application MacOS/ MyProject - a Unix shell script identical to that of the same name at the top level of the project directory MacOSClassPath.txt - text file containing the derived Java ClassPath for the project PkgInfo - a text file containing the four letter package type (APPL = application) and the application's four letter file types Resources/ - a directory containing the WOComponents and other resources in the Resources group of the Groups & Files pane UNIX/ - a directory similar to the MacOS directory but used for deployment on Unix systems Windows/ - a directory similar to the MacOS directory but used for deployment on Windows systems pbdevelopment.plist - an XML file with a single element whose key is PBXProjectSourcePath and whose value is implied by the name.
对于 Web 服务器
MyProject.woa Contents - a directory containing all of the files necessary to support the execution of the WO app WebServerResources/ Hierarchy of files and folders containing static web resources.
虽然这些包非常不同,但它们具有相同的名称,具有相似的结构,并且在开发中合并。它们通常只在拆分安装时才这样分开。您通常将应用程序服务器包放在 /Library/WebObjects/Applications(或本地等效项)中,并将 Web 服务器包放在 /Library/WebServer/Documents/WebObjects 中。
您可以通过各种方式独立创建这些包。我最近发现(由于 Xcode 不灵活的各种示例),只需像开发一样构建项目,然后在部署时物理分离这两个项目就比较容易。其他人有各种咒语来使拆分安装可靠地工作,我相信他们会在这里插话。