【发布时间】:2016-09-20 20:52:35
【问题描述】:
我有一个多模块 Maven 项目。它设置正确,因为当我运行 maven clean install 时,它成功构建了所有模块。 Webapp 包含我需要在 Web 服务中具有的通用功能,因此我将其作为 maven 依赖项包含在 Web 服务中。
Maven 反应器总结:
[INFO] Reactor Summary:
[INFO]
[INFO] Parent .................................. SUCCESS [ 0.420 s]
[INFO] Webapp .................................. SUCCESS [ 6.221 s]
[INFO] Webservice .............................. SUCCESS [ 5.954 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.763 s
[INFO] Finished at: 2016-09-20T16:27:50-04:00
[INFO] Final Memory: 18M/238M
[INFO] ------------------------------------------------------------------------
Eclipse 甚至会将 webapp 项目部署到 web 服务的部署程序集。
这是我的 web 服务中 webapp 模块的 maven 依赖项:
<dependency>
<groupId>com.company</groupId>
<artifactId>webapp</artifactId>
<version>16.3</version>
<scope>compile</scope>
</dependency>
但是,当我尝试运行它时,我收到以下信息:
Caused by: java.lang.ClassNotFoundException: com.company.model.User
要解决这个问题,我必须从部署程序集中删除模块并实际添加在 /target 文件夹中创建的 jar。看起来如果我不这样做,它不会在服务器上的 lib 文件夹中创建可执行 jar 文件,而只是 webapp 项目的文件夹结构。有没有我可以用来解决这个问题的设置,所以它可以在服务器上正确部署?非常感谢任何建议,因为这是我的第一个多模块 maven 项目,我已经为此苦苦挣扎了一段时间,这变得很麻烦。谢谢!
【问题讨论】:
-
您是否在 Eclipse 中使用插件运行 Web 服务?您是否尝试过在独立的应用程序服务器中运行使用 maven 构建的 Web 服务大战?我怀疑问题出在 Eclipse 项目元数据上。
-
我正在使用 Eclipse 的 m2e 插件。是的,当我部署从目标文件夹生成的战争时,它可以正常工作,所以我还认为这与 eclipse 如何部署到服务器有关。就是想不通。请注意,当我从 Eclipse 中查看已部署的战争中的 jar 时,它是一个目录。
-
恐怕我多次遇到相同的错误,但从未找到解决方案。尝试手动删除eclipse支持文件并重新导入项目。
-
我发现旧版本的eclipse maven插件也有类似的问题:尝试将m2e升级到最新版本eclipse.org/m2e
-
我尝试了这两种解决方案,但不幸的是它们都没有奏效。