2012-04-20 87 views
4

我有以下Maven项目estruture未发现:Maven的子模块在日食:从一个模块资源在另一个

Example 
-Persistence 
-GWTApp 

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

我需要在GWTApp项目中使用它。所以,我把它添加为依赖。像这样:

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

有了这个,我可以看到在我的web应用程序使用的持久化类,但是,当我在Eclipse中运行webproject,我得到这个错误:

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

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

有人知道我该如何解决这个问题? 在此先感谢。

编辑

我做更多的测试,现在我相信这就是问题只是GWT开发模式和JPA,或什么东西。 我试图手动复制persistence.xml到weapp/META-INFtarget/project-webapp-0.0.1-SNAPSHOT/META-INF并且错误仍然存​​在。

有什么想法?

回答

1

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

特别要注意,你必须 “MVN战争:爆炸” 来复制你的依赖目标/ MYAPP-0.0.1-SNAPSHOT/WEB-INF/lib目录

+0

不工作...似乎码头忽略文件。 – caarlos0 2012-04-23 11:28:07

+0

我找到了解决方案!我错误地配置了一个步骤,我只是配置它:'右键单击您的项目并选择运行方式> Web应用程序。第一次执行此操作时,必须选择分解的WAR目录的位置(默认情况下它应该是/ target/ - ).'并且它工作正常。谢啦! – caarlos0 2012-04-23 11:36:14

1

我假设你正在使用M2E。如果是,打开Persistence项目的“Configure Build Path”对话框(右键单击构建路径并选择“Build Path”子菜单)。

如果你看看“resources”文件夹,我怀疑你会看到“Excluded:**”;这可以防止Eclipse将文件复制到本地输出目录中,并且还可以防止它们可用于相关项目。选择该行并点击“删除”

我不知道为什么M2E会这样做,而且我知道有一个优先选项可以禁用它,但我只是手动执行它。

+0

它不是这个样子的......这是“Excluided:**/*。java”;顺便说一句,我排除该行...仍然没有工作... – caarlos0 2012-04-20 21:16:04