Eclipse 中的 Maven 子模块:一个模块中的资源在另一个模块中找不到



我有以下Maven项目结构:

Example
-Persistence
-GWTApp
持久性

具有持久性.xml在src/main/resources/META-INF中,并且在单一测试中工作正常。

我需要在GWTApp项目中使用它。所以,我把它添加为天赋。喜欢这个:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>Persistence</artifactId>
    <version>0.0.1</version>
</dependency>

有了这个,我可以在我的 web 应用程序中查看和使用持久性类,但是,当我在 eclipse 中运行 web 项目时,我收到此错误:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named exemplo

我认为这是因为 eclipse 在引用 webapp 项目中的持久性项目而不是使用 jar 文件的项目之间完成了这个"链接"。也许我错了,这只是一个猜测。

有人知道我该如何解决这个问题吗?提前谢谢。

编辑

我做了更多的测试,现在我相信问题只是 GWT 开发模式和 JPA 或其他东西。我尝试手动复制持久性.xml weapp/META-INFtarget/project-webapp-0.0.1-SNAPSHOT/META-INF,但错误仍然存在。

知道吗?

是否正确启动应用程序? https://developers.google.com/eclipse/docs/faq#gwt_with_maven

特别要注意的是,你必须"mvn war:exploded"来复制你的依赖项 target/myapp-0.0.1-SNAPSHOT/WEB-INF/lib

我假设你使用的是M2E。如果是,请打开持久性项目的"配置构建路径"对话框(右键单击构建路径,然后选择"构建路径"子菜单)。

如果你看一下"resources"文件夹,我怀疑你会看到"Excluded: **";这会阻止Eclipse将文件复制到本地输出目录中,并且还阻止它们可用于依赖项目。选择该行,然后单击"删除"

我不知道为什么 M2E 会这样做,我知道有禁用它的偏好,但我只是手动执行此操作。

相关内容

最新更新