5

我们有一个 Web 应用程序,我们需要为我们的客户更轻松地部署它。全新安装的当前工作流程:

  • 确保机器上有 JRE(32 位或 64 位)
  • 安装 Tomcat(32 位或 64 位)
  • 在 Oracle 或 SQL Server 中创建数据库(我们为此提供了 SQL 脚本)
  • 将一些值写入我们的设置表,例如主机名。(可以让用户验证这些,但不希望用户必须点击它们。
  • 创建一个连接属性文件(我们提供了一个迷你 JAR 应用程序来帮助解决这个问题),它将位于 Tomcat 下。
  • 我们有两个用于实际 Web 应用程序的 WAR 文件。这些可以分成两台机器,但现在,让我们假设它们都被转储在 Tomcat 下。
  • 启动 Tomcat 以便部署 WAR

这对我们的用户来说是一个乏味的过程特定于基于 java 的应用程序。

只是想从更有经验的用户那里获得一些关于平台最佳选择的反馈。

我不想半途而废,然后意识到我选择了错误的安装程序平台。

4

1 回答 1

11

免责声明:我公司开发 install4j。

首先,install4j 是一个商业工具,所以这与 NSIS 有很大的不同。其他主要区别是:

  • install4j 是适用于 Windows、Mac OS X 和所有 POSIX 兼容的 Linux 和 Unix 平台的多平台安装程序构建器。
  • install4j 的主要重点是安装基于 Java 的应用程序,例如它处理启动器和服务的创建,并提供了几种捆绑 JRE 的策略。Java 应用程序所需的许多东西都是开箱即用的。
  • install4j 提供自己的 IDE,专注于易用性
  • 脚本是用 Java 完成的。IDE 提供具有代码完成和错误分析功能的内置编辑器。动作、屏幕和表单组件具有广泛的“脚本属性”,允许您自定义安装程序的行为。

对于 install4j,我可以满足您的单一要求:

确保机器上有 JRE(32 位或 64 位)

在媒体向导中,选择一个 JRE 包。如果您选择“动态捆绑包”选项,则只有在没有找到合适的 JRE 时才会下载它。

在此处输入图像描述

安装 Tomcat(32 位或 64 位)

我建议简单地将现有 tomcat 安装的根目录添加到您的分发树中。

至于服务,您可以使用 Tomcat 发行版中的 Tomcat 服务启动器,也可以在 install4j 中创建服务启动器。在这两种情况下,您都可以使用“安装服务”操作来安装服务。

生成的服务的优点是更新安装程序知道它们正在运行并在安装任何新文件之前自动关闭它们。

在此处输入图像描述

在 Oracle 或 SQL Server 中创建数据库(我们为此提供了 SQL 脚本)

使用“运行可执行文件或批处理文件”操作来运行这些脚本。

将一些值写入我们的设置表,例如主机名。(可以让用户验证这些,但不希望用户必须点击它们。

任何类型的用户交互都是通过可配置的表单完成的。使用几个文本字段表单组件,您可以查询您的设置。

这在控制台安装程序中也可以透​​明地工作,并且自动生成的响应文件将允许您基于 GUI 安装程序的单次执行以无人值守模式自动安装。

在此处输入图像描述

创建一个连接属性文件(我们提供了一个迷你 JAR 应用程序来帮助解决这个问题),它将位于 Tomcat 下。

如果您已经有一个执行此操作的 JAR 文件,只需将其添加到 Installer->Custom Code & Resources 下,然后在安装程序中添加“运行脚本”操作以使用 JAR 文件中的类。

任何来自已保存到安装程序变量的表单组件的用户输入都可以通过如下调用访问

context.getVariable("greetingOption")

在“运行脚本”操作(或 install4j 中的任何其他脚本)的脚本属性中。

我们有两个用于实际 Web 应用程序的 WAR 文件。这些可以分成两台机器,但现在,让我们假设它们都被转储在 Tomcat 下。

如果您只是将 Tomcat 目录结构添加到您的分发树中,您可以预先部署这些 WAR 文件。否则,您可以使用“复制文件”操作将 WAR 文件放置在任何地方。

启动 Tomcat 以便部署 WAR

这是通过“启动服务”操作完成的。

于 2011-09-27T08:42:04.543 回答