第 29 章 将 Fuse 集成项目发布到服务器

您可以使用 Eclipse 发布机制将 Fuse 集成项目部署到服务器运行时。要做到这一点,您必须在 Fuse 集成 视角中定义服务器并将服务器添加到 Servers 视图中。有关逐步演示,请参阅。

概述

您可以设置支持的服务器来自动发布分配的 Fuse 项目,或者仅在手动调用 publish 命令时发布它们。

每个添加到 Servers 视图的服务器运行时都有自己的 Overview 页面,其中包含其配置、连接和发布详情:

UGservRuntimeOverviewTab

您可能需要扩展 Publishing 来公开服务器运行时发布选项和默认设置:

  • 永不会发布自动发布 criu-criuYou,您必须选择这个选项来手动发布项目。

    重要

    您还必须禁用 If server started,在服务器的 Add 和 Remove 页面中立即发布更改 (详情请参阅 “手动发布 Fuse 项目”一节

  • 当资源更改 iwl-wagon[default] 启用此选项时 ,自动发布或重新发布 Fuse 项目(在保存对其所做的更改时)。发布项目的速度取决于 发布间隔 (默认为 15 秒)。
  • 在构建事件 mvapich- iwlFor Fuse 项目后自动发布 ,与资源更改时自动 发布时的自动发布 相同。

在资源更改时自动发布 Fuse 项目

服务器运行时的默认发布选项是 自动发布资源何时更改

  1. 如有必要,启动您要发布 Fuse 项目的服务器运行时。详情请查看 第 28.2 节 “启动服务器”
  2. Servers 视图中,双击服务器运行时以打开其 Overview 页面。
  3. 展开 Publishing,然后选择 Automatically publish when resources change
  4. 要增加或减少发布周期之间的间隔,请单击根据情况 发布间隔(以秒为单位) 旁边的单选按钮。
  5. Servers 视图中,右键单击服务器运行时以打开上下文菜单,然后选择 Add 和 Remove

    UGservAddRemove1

    所有可用于发布的资源都会出现在 Available 列中。

  6. 要为服务器运行时分配资源(本例中为 CBRroute Fuse 项目):

    • 双击它,或者
    • 选择它,然后单击添加

      所选资源移至 Configured 列中:

      UGservAddRemove2

      在这个阶段,实际发布分配的资源的时间取决于服务器运行时是否正在运行以及 发布间隔 设置。但是,如果服务器停止了,则必须在启动服务器后手动发布项目(详情请参阅 “手动发布 Fuse 项目”一节)。

  7. 点击 If server started,立即发布更改 以启用它:

    UGservAddRemove3

    此选项可确保在单击 Finish 后,配置的项目会立即发布。在服务器运行时 Overview 页面上的 Automatically publish when resources change 选项可确保在保存对本地项目所做的更改时重新发布配置的项目。

  8. Finish

    该项目会出现在服务器运行时节点的 Servers 视图中,服务器运行时状态报告 [Started,Publishing…​]

    发布后,服务器运行时和项目报告的状态都是 [Started,Synchronized]:

    UGservPublishSynched
    注意

    对于服务器运行时,Synchronized 表示服务器上的所有发布资源都与其本地对应的资源相同。对于已发布的资源,Synchronized 表示它与其本地对应项相同。

手动发布 Fuse 项目

  1. 如有必要,启动您要发布 Fuse 项目的服务器运行时。详情请查看 第 28.2 节 “启动服务器”
  2. Servers 视图中,双击服务器运行时以打开其 Overview 页面。
  3. 展开 Publishing,然后选择 Never publish
  4. FileSave 保存发布选项更改。
  5. 如果 Fuse 项目已经分配给服务器运行时,请确保禁用此选项:如果服务器 启动,请立即发布更改

    1. Servers 视图中,右键单击服务器运行时以打开上下文菜单。
    2. Add and Remove…​ 打开服务器的 Add 和 Remove 页面。
    3. 如果启用了以下选项,请禁用它: 如果服务器启动,请立即发布更改
    4. 跳至 [finish]
  6. 如果 Fuse 项目尚未分配给服务器运行时,请立即分配它:

    1. 按照 [startAssignResource] 中的 [stopAssignResource] 遵循 “在资源更改时自动发布 Fuse 项目”一节
    2. 不要启用 If server started,请立即发布更改
  7. 单击 完成

    该项目会出现在服务器运行时节点的 Servers 视图中,服务器运行时状态报告 [Started]:

    UGservPublishSynched
  8. Servers 视图中,右键单击项目的节点。在本例中,选择 CBRroute Fuse 项目以打开上下文菜单:

    UGassgnProjSrvViewCntxtMnu
  9. 选择 Full Publish

    在发布操作期间,服务器运行时和项目的状态都报告 [Started,Republish]

    发布后,服务器运行时的状态和项目报告 [Started,Synchronized]:

    注意

    这些工具不支持 Incremental Publish 选项。单击 Incremental Publish 的结果会完全发布。

验证项目是否已发布到服务器

将 Fuse 项目发布到服务器运行时后,您可以连接到服务器并检查其上是否已安装了项目的捆绑包。

  1. 连接到服务器运行时。详情请查看 “在 Servers 视图中连接到正在运行的服务器”一节
  2. Servers 视图中,展开服务器运行时树,以公开 Bundles 节点并选择它。

    这些工具使用服务器上安装的捆绑包列表填充 Properties 视图:

    UGsrvVerifyPublishedProj
  3. 要查找项目的捆绑包,可向下滚动到列表的底部,或者在 Properties 视图的 Search 框中输入捆绑包的 Symbolic Name。捆绑包的 Symbolic Name 是您在创建时为您提供的名称。

    注意

    或者,您可以在 Terminal 视图中发出 osgi:list 命令,以查看 Fuse 服务器运行时上安装的已生成捆绑包列表。该工具为 osgi:list 命令显示的 OSGi 捆绑包使用不同的命名方案。

    在项目的 pom.xml 文件的 < build > 部分中,您可以找到捆绑包的符号链接名称及其 捆绑包 名称(OSGi),例如:

    ugBundleNamesPomFile