【问题标题】:Maven submodules in eclipse: Resources from one module not found in anothereclipse中的Maven子模块:一个模块中的资源在另一个模块中找不到
【发布时间】:2012-04-20 20:06:08
【问题描述】:

我有以下 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>

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

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

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

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

编辑

我做了更多测试,现在我认为问题出在 GWT 开发模式和 JPA 或其他问题上。 我尝试手动将 persistence.xml 复制到 weapp/META-INFtarget/project-webapp-0.0.1-SNAPSHOT/META-INF 并且错误仍然存​​在。

有什么想法吗?

【问题讨论】:

    标签: gwt maven


    【解决方案1】:

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

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

    【讨论】:

    • 我找到了解决方案!我错误的一步配置,我只是配置这个:Right-click your project and select Run As &gt; Web Application. The first time you do this, you'll have to select the location of the exploded WAR directory (by default it should be /target/&lt;AppName&gt;-&lt;version&gt;). 并且它起作用了。谢谢大哥!
    【解决方案2】:

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

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

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

    【讨论】:

    • 不是这样的......它是“排除:*/.java”;顺便说一句,我排除了那条线...仍然无法正常工作...
    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多