我有一个主Web项目,其中包含部署和通过浏览器点击页面所需的所有内容 . 然后我将几个“函数”作为一个单独的项目,可以包含在主项目中 .

举个例子,我有 MainAppfunctions.reportsApp .

使用 ant 构建这些时,会发生以下情况:

- MainApp.war
  - mainApp/jsf/Pages.faces, etc
  - reportsApp/jsf/Reports.faces, etc
  - WEB-INF/web.xml, mainapp-faces-config.xml, reportsApp-faces.config.xml, etc
  - WEB-INF/lib
     - MainApp.jar
       - META-INF/* (MainApp's)
       - my/company/MainApp/Code.class 
     - functions.reportsApp.jar
       - META-INF/* (reportsApp's)
       - my/company/reportsApp/Code.class

这工作正常,据我了解 .war.jar 规范,是正确的 .

但是在Eclipse中,我想让两个项目都打开并部署/开发到那里的Tomcat服务器设置 . 我有以下内容:

导入这两个项目,设置 MainApp 以将 ReportsApp 作为项目依赖项(通过,MainApp-Properties,Java Build Path,Projects) .

注意:MainApp的 web.xml 指定:

<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>
/WEB-INF/reportsApp-faces-config.xml,
/WEB-INF/mainApp-faces-config.xml
</param-value>

reportApp的 web.xml 指定:

<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>
/WEB-INF/reportsApp-faces-config.xml
</param-value>

我在Eclipse创建的MainApp-Properties-Deployment Assembly中注意到:

src:functions.reportsApp, deployPath: WEB-INF/lib

这由Eclipse部署为 Tomcat/webapps/MainApp/WEB-INF/lib/functions.reportsApp.war . WAR? 这对我没有意义,也没有用 .

为了使它工作,我必须:

  • 向MainApp添加一个文件夹,我(通过“高级”部分)链接到ReportApp的Web目录 .

  • 添加到MainApp 's Deployment Assembly that linked folder and select MainApp'的Web文件夹作为'Folder for deployment descriptor'

这将 web/* (JSF等)内容转换为 Tomcat/webapps/MainApp ,ReportsApp的WEB-INF内容合并到MainApp的WEB-INF中 .

我还必须确保MainApp的部署程序集包含 functions.reportsApp.jar ,以确保它在 MainApp/WEB-INF/lib 下部署到tomcat .

当然Eclipse本身可以想到这一切吗?一个Web应用程序依赖于另一个Web应用程序必须意味着必须正确部署依赖项?

相关问题: