我有一个多模块 Maven 项目。它设置正确,因为当我运行 maven clean install 时,它成功构建了所有模块。 Webapp 包含我需要在 Web 服务中拥有的常用功能,因此我已将其作为 Maven 依赖项包含在 Web 服务中。
Maven react 器摘要:
[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 只会在工作区中查找项目以作为 Maven 依赖项包含在内,但它会将项目添加到依赖项目中,当您想要使用其他模块中的类时,这会导致问题。我发现这是一个被选中的设置。一旦我取消选中它,它就会将 jar 正确添加到服务器,并且我能够访问类而不会出现 ClassNotFound 异常
右键单击 Web 项目 -> 属性 -> Maven
关于java - 多模块maven项目未为依赖模块部署可执行Jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603529/