我现在正在研究的网站由几个java项目和一个引用它们的主要Web项目 A
组成 . 我正在使用的IDE是Eclipse Helios .
我想要完成的是在堆栈中添加一个新项目 B
. 该项目也被主要项目引用,但它本身就是一个Web项目 . 当我将 B
添加到 A
的部署程序集时,在发布时,Eclipse会自动将其打包为战争并将其部署到服务器的 WEB-INF/lib
.
我希望它被部署为jar,但也保持项目的Web性质,因为它具有在其上运行的一些功能(和测试) . 我有用于构建 B
的jar的ant任务,但我不确定是否可以让Eclipse从Web项目中部署jar .
我可以手动添加jar(作为工作区中的存档),但这意味着只要有人清理所有项目, B
的jar就会被删除而不会生成,因为构建只编译类,部署将它们打包成战争 .
附:我知道设计很差,但改变它是不可能的,因为我没有权限:) .
3 回答
我发现以下解决方案对我有用 Eclipse Luna
项目B“项目构面”:选择“公用程序模块”而不是“静态Web模块”或“动态Web模块”
项目A“部署程序集”:删除“B”并再次添加它 .
=> B的“部署路径”现在是B.jar
最简单的方法是:文件 - >导出... - > Java - > Jar文件
要使用ant:打开项目属性,请转到Builders,单击new,选择Ant Builder等 .
你可以这样做:
编写一个shell / batch脚本
调用项目B的ANT脚本,该脚本创建一个JAR文件 .
然后,它调用项目A的ANT脚本 .
更新项目A的ANT脚本,添加复制任务 . 此文件复制任务将使用相对路径将步骤1中创建的JAR文件复制到项目A的WEB-INF / lib目录 .
在Eclipse中,转到
External Tool > External Tools Configuration > Program > New Progam
并将此Shell / Batch脚本添加到它 .无论何时你想 Build . 从菜单运行此外部工具 . 这将确保
您的构建始终具有最新的B项目
ANT任务将保持较小 .
Adding a Web Project in an Eclipse Deployment Assembly
我不知道任何这样的事情,直到Thorbjørn Ravn Andersen指出另一个question where I answered . 如上所述:
但是,可能是,你已经尝试过了 .
编辑#1:固定语法编辑#2:添加更多信息