2

我现在正在处理的站点由几个 java 项目和一个A引用它们的主 Web 项目组成。我使用的 IDE 是 Eclipse Helios。

我想要完成的是将一个新项目添加B到堆栈中。该项目也被主要项目引用,但它本身就是一个 Web 项目。当我添加B到部署程序集A时,发布时,Eclipse 会自动将其打包为一个战争,并将其部署到服务器的WEB-INF/lib.

我希望它以 jar 的形式部署,但也保持项目的 Web 特性,因为它具有在其上运行的一些功能(和测试)。我有 ant 任务来构建一个 jar B,但我不知道如何在 Eclipse 中使用它们。另外,我不确定是否可以让 Eclipse 从 Web 项目中部署一个 jar。

我可以手动添加 jar(作为工作区中的存档),但这意味着每当有人清理所有项目时,jarB都会被删除而不是生成,因为构建只编译类,部署将它们打包到战争。

PS我知道设计很差,但是因为我没有权限而改变它是不可能的:)。

4

3 回答 3

2

我在Eclipse Luna上找到了适合我的以下解决方案

  1. Project B “Project Facets”:选择“Utility Module”而不是“Static Web Module”或“Dynamic Web Module”

  2. 项目 A“部署程序集”:删除“B”并再次添加。

=> B 的“部署路径”现在是 B.jar

于 2015-05-19T15:50:37.760 回答
1

最简单的方法是:文件 -> 导出... -> Java -> Jar 文件

使用ant:打开项目属性,进入Builders,点击新建,选择Ant Builder等。

于 2011-01-11T12:07:02.240 回答
1

你可以这样做:

  1. 编写一个 shell/批处理脚本
    • 调用项目 B 的 ANT 脚本,该脚本创建一个 JAR 文件。
    • 然后,它调用项目 A 的 ANT 脚本。
  2. 更新项目A的ANT脚本,添加复制任务。此文件复制任务将使用相对路径将步骤#1 中创建的 JAR 文件复制到项目 A 的 WEB-INF/lib 目录。
  3. 在 Eclipse 中,转到External Tool > External Tools Configuration > Program > New Progam并将此 Shell/Batch 脚本添加到其中。

每当你想建立。从菜单运行这个外部工具。这将确保

  • 您的构建始终具有最新的项目 B
  • ANT 任务将保持较小。

在 Eclipse 部署程序集中添加 Web 项目

我不知道这样的事情,直到Thorbjørn Ravn Andersen在我回答的另一个问题中指出了这一点。如那里所述:

部署中的内容不是由构建路径决定,而是由动态 Web 项目的首选项中的部署程序集条目决定。

但是,您可能已经尝试过。


编辑#1:固定语法编辑#2:添加更多信息

于 2011-01-11T12:10:36.650 回答