4.8.3 使用Ant自动完成部署(2)

来源:互联网 发布:mysql full out join 编辑:程序博客网 时间:2024/06/11 19:33

我们注意到,这个文件首先使用默认的目标(default属性的值)定义了一个项目元素(project)。默认的目标会在命令行中没有指定目标的情况下运行。在项目元素中,开头的几个元素用于定义特性(property)。这些特性元素可以用来定义在整个构建文件中使用的变量。例如,这个文件中设置了源目录和jar文件目录对应的变量,以便后面使用。而且,在后面元素的属性中,也可以看到以${变量名}形式引用的特性。接着,在定义目标之前,还设置了一个路径元素(path)。这个元素中列出了jar文件和classpath中的目录。当在后面要使用classpath时,可以通过它的ID来引用。

第一个目标(target)是compile-gwt,即通过GWT编译器编译GWT模块。但是,相应的模块并没有在这个目标中指定,而是使用了${app}占位符。我们也没有将这个模块定义为一个特性,因此可以通过命令行参数,以传递变量的形式传入要编译的模块。这样一来,就为这个构建文件赋予了一定的灵活性,使它能够用于多个应用程序。运行这个目标会为应用程序编译生成JavaScript文件,同时将该项目所有的公共文件复制到www目录下的应用程序目录中(原文有遗漏,已补充。——译者注)。

第二个目标是compile,即使用常规的javac编译器来编译其他Java类文件。这些类文件是指在服务器端运行的代码,其中可能包含提供GWT-RPC服务的servlet(如果用到的话)。在这里,Ant脚本会把这些类复制到WEB-INF/classes目录中(原文wwwdirectory有误。——译者注)。这个目录是servlet容器Web应用程序中保存类的标准位置。

最后一个目标是deploy,即将必需的GWT库(gwt-servlet.jar)复制到WEB-INFO/lib目录中。这个目录是servlet容器Web应用程序中保存jar文件的标准位置。这个目标也将把预定义的web.xml文件复制到WEB-INFO目录中(原文wwwdirectory有误。——译者注)。而web.xml文件是用于描述Web应用程序中servlet的必要文件。

运行这个针对第9章的InstantMessenger应用程序的任务,会得到如图4-51所示的输出。在这一步执行完成后,应该会在servlet容器中建立一个www目录及相应的应用程序目录(原文有遗漏,已补充。——译者注),而且也遵循了servlet容器对文件名和目录结构的约定,结果如图4-52所示。

 图4-51 使用Ant完成编译和部署

 

 图4-52 Ant脚本的输出结果 
原创粉丝点击