包装与在没有ANT的情况下部署Java EE webapp

时间:2012-07-22 17:24:45

标签: java java-ee ant

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

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

是否可以仅使用javac,jar或JAVA_HOME / bin中可用的其他命令来部署应用程序而不使用ANT脚本?如果有任何此类实施,请指导我们?我想知道在开发ANT之前,JAVA开发人员如何使用大型应用程序。我开始知道MAKE命令(在我们的服务器中可用)对java应用程序不利。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

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

  1. 战争名称。
  2. 图书馆位置清单。
  3. 源根目录,也许让root的文件夹名称为jar文件名。
  4. 然后在运行脚本时,它将创建一个类路径,包括库位置列表中显示的所有jar文件。然后它将为每个源位置编译java文件,构建一个jar并将jar文件添加到类路径(以防后来的模块需要它)。

    最后,它将构建一个带有外部库的Web应用程序结构,新创建的jar,复制asp文件(可能是预编译的),然后使用zip包将Web应用程序结构转换为war文件。

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