0

我们将为我们的客户开发一个用 Java EE 技术编码的大型 webapp。我的客户端不支持其服务器中的 OSS ANT 和 Eclipse。

所以我们的要求是在我们的本地系统中编码和开发应用程序并对其进行测试,然后我们需要在客户端服务器中提供源代码,我们将在其中运行一个部署脚本,该脚本将从源文件编译所需的 java 文件并部署.class 文件和其他资源文件到在该服务器 (HP-UX) 上运行的 Tomcat。

是否可以在不使用 ANT 脚本的情况下仅使用 javac、jar 或 JAVA_HOME/bin 中可用的其他命令来部署应用程序?如果有任何这样的实施,你能指导我们吗?我想知道在开发 ANT 之前,JAVA 开发人员是如何部署大型应用程序的。我开始知道 MAKE 命令(在我们的服务器中可用)不适用于 java 应用程序。

注意:我们将有复杂的包层次结构(最多 4 个级别)

更新:看起来我没有一个直截了当的答案。我想说服我们的客户使用 ANT。如果不是,我将根据下面的评论为我的客户开发一个跨平台定制构建工具......谢谢大家......如果我们知道打包和部署的正确步骤,我认为构建这种类型的工具并不难。 ..

4

2 回答 2

1

我认为整个设置很奇怪,但无论如何......

.war 文件非常简单。它是具有给定目录结构的 ZIP 文件。您可以使用一个 shell 脚本轻松地创建它,该脚本首先运行javac以编译源代码,然后将文件复制到正确的目录,最后将其打包到扩展名为 .war 的 ZIP 文件中。

您可以在网上找到 .war 文件的规范。或者您可以在您的环境中构建一个,使用 ZIP 工具打开它,然后查看哪些文件需要放在哪里。

更新:如果您的应用程序很大,那么您可以将其拆分为模块。每个模块都将被编译并打包成一个单独的 .jar 文件(基本上也是一个 ZIP 文件)。如果一个模块依赖于另一个模块,那么只需将所需的 .jar 文件作为类路径参数传递给编译器。

于 2012-07-22T17:41:17.087 回答
0

如果你真的必须接受客户的要求,那么我可能会这样做。

为了避免必须修改您添加的每个文件的依赖项,我将介绍一个放置源代码、jar 文件和输出文件的位置的约定。然后我会创建一个带有一些设置的脚本:

  1. 战争名称。
  2. 图书馆位置列表。
  3. 源根列表,可能让根的文件夹名称为 jar 文件名。

然后在运行脚本时,它将创建一个类路径,其中包括库位置列表中显示的所有 jar 文件。然后它将为每个源位置编译 java 文件,构建一个 jar 并将 jar 文件添加到类路径(以防以后的模块需要它)。

最后,它将使用外部库、新创建的 jars、复制 asp 文件(可能是预编译的)构建一个 web 应用程序结构,然后使用 zip 将 web 应用程序结构打包到一个 war 文件中。

找出客户可以接受的外壳,这样您就不会使用任何外壳特定的功能。我认为你不需要任何花哨的东西,所以这不应该太难。

于 2012-07-23T07:51:43.133 回答