有没有办法将不同的Java Web应用程序组合到一个Web应用程序(战争)而不会相互影响?

时间:2012-09-06 04:35:15

标签: java web

我正在运行一个具有多个不同功能的应用程序,它们完全独立; 唯一的原因是我一起运行它们是在内存有限的小vps上运行它们;

我期待:

  1. 单独开发每个模块

  2. 使用一些ant任务将它们组合成一个应用程序;

  3. 对于一个ear文件,我们可以将几个不同的war文件组合成一个,它们可以正常运行而不会相互影响, 但是,因为我正在运行一个tomcat并且不想涉及像jboss这样的重型容器,所以没有ear文件;

    我们有办法实现这个目标吗?比如我们开发独立的东西,然后将它们打包成jar,把它放到web-inf / lib中它会起作用吗?谢谢。

    我用过的选项:

    1. 在一个应用程序中开发它们,使用不同的目录进行分离 他们
    2. 在许多不同的应用程序中开发它们并将它们部署为 tomcat中的不同Web应用程序,但这个似乎加载 将web-inf / lib下的类复制到内存中,这不是一件好事 选项,虽然我不喜欢将它们全部放到tomcat / lib ...

2 个答案:

答案 0 :(得分:4)

你可以使用Maven(如果你很乐意使用Maven而不是Ant)和Maven的Cargo插件。它具有'uberwar'打包格式,允许将多个WAR文件合并为单个组合WAR文件。详情请见:

http://cargo.codehaus.org/Merging+WAR+files

答案 1 :(得分:0)

你需要构建某种类型的墙,因此存在技术限制,以避免糟糕的开发人员破坏你的设计产生不必要的依赖。您可以将所有java类放在新合并的Web项目中嵌入的不同jar中,只是将Web内容保留在同一个项目中但不同的文件夹中。

Maven + SVN可以托管并为新项目提供罐子。