我需要Eclipse来部署我的ANT脚本构建的WAR文件,而不是它内部构建的内容

时间:2010-11-23 21:02:20

标签: eclipse tomcat ant publish war

我正在使用Eclipse Helios。我有一个动态Web项目,我已经设置Eclipse使用Ant Builder来生成WAR文件。这一切都很好;如果我更改.java文件,Eclipse会自动通过Ant运行我的build.xml并更新我的WAR。如果我将WAR部署到Tomcat的外部实例,它可以很好地工作。

但是,当我告诉Eclipse在Tomcat下运行我的项目时,它不使用Ant构建生成的WAR文件,也不使用我的Ant脚本生成临时WAR。

我知道这是因为我的build.xml脚本在WAR中的WEB-INF / classes中包含了一些额外的XML配置文件,这些文件没有在Eclipse推出的WEB-INF / classes目录中结束。

我似乎无法在Eclipse中找到任何“发布时使用此WAR文件而不是构建自己的文件”的内容。

另一种方法是通过添加文件列表告诉Tomcat何时构建WAR,但我似乎无法找到方法。

我也很好奇Eclipse如何知道要发布什么,因为它显然忽略了我的build.xml和我之前生成的WAR文件。

2 个答案:

答案 0 :(得分:6)

Eclipse通过查看项目的Web部署程序集选项来部署Web应用程序。您可以通过右键单击项目,选择“属性”,然后单击“部署程序集”来查看此内容。 Eclipse通常在这里使用扩展目录部署,而不是创建和部署WAR(这是基于正在使用的服务器插件,但我认为大多数都使用扩展的目录结构来提高速度)。如果您导出为WAR,它将创建具有相同内容的WAR。

有两种主要选择可以做你想做的事情:

  • 修改Web部署程序集选项,使其与部署的应用程序中的内容完全匹配

  • 不要使用Eclipse的部署;将“外部Ant构建器”添加到项目的“构建器”选项中(右键单击项目,选择“属性” - >“构建器”)。然后,您可以在eclipse构建项目时选择要在ant文件中使用的目标。其中一个选项可以是部署步骤

答案 1 :(得分:0)

  

我似乎无法在Eclipse中找到“发布时使用此WAR文件而不是构建自己的文件”的任何内容。

我是IntelliJ用户,所以请耐心等待。但...

右键单击Project Explorer目标/ foo.war,选择Mark Deployable。

然后再次右键单击foo.war文件并运行另一个... - >在服务器上运行...

选择JBoss实例。

如果你转到Servers视图,你现在可以在JBoss实例下看到你的WAR文件为/proj_root/target/foo.war

哦,Eclipse,叹息......