Where to put persistence.xml in library jar using maven?

痴心易碎 提交于 2019-11-29 23:36:53

As @Dave mentions above src/main/resources is the place. When it comes to persistence.xml it should be placed in the META-INF folder. So to conclude: src/main/resources/META-INF/persistence.xml.

J Slick

I have only gotten persistence.xml to work in my WAR when placed at WEB-INF/classes/META-INF, just as the documentation advises:

http://docs.oracle.com/cd/E19159-01/819-3669/bnbrj/index.html states the following:

If you package the persistence unit as a set of classes in a WAR file, persistence.xml should be located in the WAR file’s WEB-INF/classes/META-INF directory.

In my Eclipse project props, I added this to the build path:

src\main\resources

My Maven project has persistence.xml at the following location:

src\main\resources\META-INF\persistence.xml

After running Maven clean install, a WAR is built with:

WEB-INF\classes\META-INF\persistence.xml

When I drop this WAR into Tomcat 7's webapps folder, it is deployed properly and JPA works.

XML configuration files almost always belong in src/main/resources, in a package hierarchy (just like Java source files). Those files will be copied into the artifact in the same hierarchy.

In the maven pom.xml file you have to add the resource directory, so you don't have to add it to the build-path in eclipse manually.

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/resources</directory>
      </resource>
    </resources>
    ...
  </build>
  ...
</project>

see: http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!