支持Eclipse maven的Web应用程序引用工作区项目,但在运行Tomcat服务器时未部署这些项目

时间:2013-12-23 20:34:09

标签: java eclipse maven m2e m2e-wtp

我有一个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运行时,如何让Eclipse将工作区项目依赖项添加到我的Web应用程序的WEB-INF / lib中?

我正在使用Eclipse J2EE 4.3.1(Kepler SR1)。

我也尝试右键单击项目并选择Export - > WAR文件,但导出的WAR文件也不包括引用的工作区项目。我认为问题影响了两种情况。

这非常令人讨厌,而且让我慢慢减速......此时我必须每天多次将项目重新添加到Deployment Assembly页面以保持它... ...

更新:我在POM中添加的作为依赖项的工作区项目显示在项目属性下的Referenced Projects列表中。但是,当我在Project Explorer中展开Maven依赖项时,列表中缺少工作区项目依赖项!只显示Maven存储库中的那些。他们当地人似乎默默无视......

1 个答案:

答案 0 :(得分:0)

我有类似的问题,因为我在eclipse之外创建了项目,并且他们导入了它。对我有用的是添加正确的项目方面:项目上下文菜单 - >属性 - >项目方面 - >动态Web模块(选择正确的版本)。我使用的是Eclipse ADT(版本4.2.0),但是,为了避免多次安装,我对Android和其他类型的应用程序使用相同的eclipse。