我有一个web应用程序(Eclipse的动态web应用程序),它使用Maven(m2e-wtp)进行构建和依赖关系管理。这个web应用程序的POM引用了我工作区中的其他一些项目,这些项目恰好也是用maven构建的eclipse插件(使用Tycho构建),以及来自maven存储库的其他第三方库。
当我从CLI运行maven时,一切都很好。正如预期的那样,所有依赖项都包含在WEB-INF/lib目录中。
问题是当我尝试使用Eclipse运行项目时。我在Eclipse中配置的Tomcat服务器中运行该应用程序,但工作区中引用的项目并没有添加到部署的war中。
我尝试将它们添加到部署程序集(在项目首选项下),这非常有效,但每次更新maven配置时,这些设置都会被m2e删除。我在一些地方读到,我们不应该手动添加条目,因为所有依赖项都应该由m2e管理。。。
问题是:当我从Eclipse运行WEB应用程序时,如何让Eclipse将工作区项目依赖项添加到它的WEB-INF/lib
我使用的是Eclipse J2EE4.3.1(开普勒SR1)。
我还尝试右键单击该项目并选择Export->WAR文件,但导出的WAR文件也不包括引用的工作区项目。我认为这个问题影响了这两种情况。
这太烦人了,让我慢了不少。。此时,我必须每天多次将项目重新添加到部署程序集页面中,以保持它的运行。。。
更新:我在POM中作为依赖项添加的工作区项目显示在引用项目列表中,位于项目属性下。但是,当我在ProjectExplorer中展开Maven依赖项时,工作区项目依赖项从列表中丢失了!只有Maven存储库中的才会显示。他们当地人似乎被默默地忽视了。。。
我遇到了类似的问题,因为我在eclipse之外创建了项目,他们导入了它。对我来说,有效的是添加了正确的项目方面:项目上下文菜单->属性->项目方面->动态Web模块(选择正确的版本)。我使用的是EclipseADT(版本4.2.0),但为了避免多次安装,我在Android和其他类型的应用程序中使用了相同的Eclipse。