客户端 JAR 部署方法概述
要有效地管理客户端 JAR 自定义,需要了解 Windchill 客户端 JAR 部署方法。
逻辑 JAR
在 Windchill R7.0 中引入了“逻辑”JAR 的概念。除了可能存在与第三方 JAR 等的任何外部相关性之外,每个逻辑 JAR 实际上还包含四个 JAR。下图显示了逻辑 JAR 的组件。
在此图中,粗体标签表示每个组件 JAR 的角色名称,而斜体名称表示 JAR 的实际名称。例如,对于名为 "MyApplet" 的逻辑 JAR,组件分别为 MyApplet.jar、MyAppletCust.jar、MyAppletDSU.jar 和 MyAppletFCS.jar。
| 图中的 classloading 优先级为从左到右,因此自定义 JAR 将覆盖 DSU JAR,后者将覆盖原始分布 JAR。 |
头 JAR 仅包含声明组件及其所依赖的其他 JAR 的内容清单,以及当头 JAR 为 applet 的顶层 JAR 时的 JAR 索引。PTC 分布会将自定义 JAR 留空,因为它们供客户添加和覆盖 (例如,到资源束)。DSU JAR 将一直留空,除非维护版本向目标客户端提供附加文件和/或对应 FCS JAR 中已存在文件的较新版本。FCS JAR 包含 FCS (首批出货版本) 中模块所需的所有原始文件。头 JAR 可能会在自己的组件之后列出其所依赖的其他 JAR。
| 如果可下载软件更新中提供了 R7.0 之前的 Windchill 维护版本,则需要使用 "DSU"。 |
模块化客户端 JAR
除了将逻辑 JAR 分为不同组件以用于自定义、维护版本和原始分布之外,已努力将客户端 JAR 分为相应的模块化组件,以防一个 applet 所需的资源被所有 applet 自动下载。
此类工作等同于需要防止任何资源被多次下载,即包含在多个 FCS JAR 中。DSU 和自定义 JAR 实际上会复制对应 FCS JAR 包含的资源以覆盖它们,无需重新构建 FCS JAR。实际上,只有在很少的、有针对性的情况下才会在多个 FCS JAR 中下载一个资源。
通常,此类工作已导致使用逻辑 JAR 的相关性树 (更精确地说,是无向图),如下一节所述。