eclipse中的Maven子模块:来自另一个模块中的资源

时间:2012-04-20 20:06:09

标签: gwt maven

我有以下Maven项目estruture:

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>

有了这个,我可以在我的webapp中看到并使用持久化类,但是,当我在eclipse中运行webproject时,我收到了这个错误:

  

javax.persistence.PersistenceException:没有名为examplelo的EntityManager的持久性提供程序

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

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

修改

我做了更多的测试,现在我认为这个问题只是GWT开发模式和JPA之类的东西。 我尝试手动将persistence.xml复制到weapp/META-INFtarget/project-webapp-0.0.1-SNAPSHOT/META-INF,错误仍然存​​在。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

如果您查看“资源”文件夹,我怀疑您会看到“已排除:**”;这可以防止Eclipse将文件复制到本地输出目录中,并且还可以防止它们可用于依赖项目。选择该行,然后单击“删除”

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

答案 1 :(得分:1)

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

特别注意,你必须“mvn war:explosion”才能复制你的依赖项target / myapp-0.0.1-SNAPSHOT / WEB-INF / lib