Où mettre persistence.xml dans la bibliothèque bocal à l'aide de maven?
Au travail, nous avons une entité de la bibliothèque qui est utilisé par plusieurs clients de la bibliothèque (plusieurs servlets, une application de bureau, etc.). L'entité de la bibliothèque se compose de JPA-Annotée des classes et le plus en évidence un persistence.xml.
Tous les projets sont configurés à l'aide de maven.
Où les persistence.xml fichier mettre? Il doit être situé à l'intérieur du fichier jar de l'entité à la bibliothèque et je ne suis pas sûr de la façon de configurer ce à l'aide de maven.
(Nous sommes juste de diviser un projet en plusieurs sous-projets)
"'JOUR" " Pour être clair à ce sujet, il y a une Maven-Projet contenant le persistence.xml et un autre (B), qui dépend de ce Projet. J'ai endroits persistence.xml dans src/main/resources/META-INF/persistence.xml dans Un, lorsque vous essayez d'utiliser un EntityManager à l'intérieur d'Un, pas de problème, insidie B: rien ne fonctionne.
EclipseLink donne l'Avertissement suivant:
[EL Warning]: The collection of metamodel types is empty. Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units. Please verify that your entity classes are referenced in persistence.xml using either <class> elements or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element
Je soupçonne l'persistence.xml n'est pas trouvé, mais il est présent dans la cible jar.
Vous devez vous connecter pour publier un commentaire.
Comme @Dave mentionne ci-dessus
src/main/resources
est le lieu. Quand il s'agit depersistence.xml
il doit être placé dans leMETA-INF
dossier. Donc pour conclure:src/main/resources/META-INF/persistence.xml
.J'ai seulement obtenu persistence.xml pour travailler dans ma GUERRE lorsqu'ils sont placés dans WEB-INF/classes/META-INF, tout comme la documentation conseille:
http://docs.oracle.com/cd/E19159-01/819-3669/bnbrj/index.html les états suivants:
Dans mon projet Eclipse accessoires, j'ai ajouté ceci à la build path:
src\main\resources
Mon projet Maven a persistence.xml à l'emplacement suivant:
src\main\resources\META-INF\persistence.xml
Après l'exécution de
Maven clean install
, une GUERRE est construit avec:WEB-INF\classes\META-INF\persistence.xml
Quand je baisse cette GUERRE dans Tomcat 7 du répertoire webapps, il est déployé correctement et JPA œuvres.
persistence.xml
fichiers en constituant des Pots (éventuellement d'une GUERRE), plutôt que directement dans la GUERRE. LeWEB-INF/classes/META-INF
astuce est plutôt utile arcana, si!Des fichiers de configuration XML presque toujours appartenir à
src/main/resources
, dans une hiérarchie de paquet (tout comme les fichiers source Java). Ces fichiers seront copiés dans l'artefact dans la même hiérarchie.Dans le maven pom.xml fichier vous devez ajouter le répertoire des ressources, de sorte que vous n'avez pas à l'ajouter à l'accumulation de chemin dans eclipse manuellement.
voir: http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html
src/main/resources
au lieu de cela, ce qui est le maven par défaut et est ajoutée automatiquement