4 Stimmen

Maven-Submodule in Eclipse: Ressourcen aus einem Modul werden in einem anderen nicht gefunden

Ich habe die folgenden Maven-Projekt estruture:

Example
-Persistence
-GWTApp

Die Persistenz hat die persistence.xml in src/main/resources/META-INF und es funktioniert gut in den Einheitstests.

Ich muss es in dem GWTApp-Projekt verwenden. Also füge ich es als Depency hinzu. wie folgt:

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

Damit kann ich die Persistenzklassen in meiner Webapp sehen und verwenden, aber wenn ich das Webprojekt in Eclipse ausführe, bekomme ich diesen Fehler:

javax.persistence.PersistenceException: Kein Persistenz-Provider für EntityManager namens exemplo

Ich denke, das liegt daran, dass Eclipse diese "Verknüpfung" zwischen Projekten herstellt, indem es das Persistenzprojekt im Webapp-Projekt referenziert, anstatt eine Jar-Datei zu verwenden. Vielleicht bin ich falsch, es ist nur eine Vermutung.

Weiß jemand, wie ich das beheben kann? Vielen Dank im Voraus.

EDITAR

Ich tue mehr Tests, und jetzt glaube ich, dass das Problem etwas nur mit GWT Dev-Modus und JPA, oder etwas ist. Ich habe versucht, persistence.xml manuell zu kopieren weapp/META-INF und an target/project-webapp-0.0.1-SNAPSHOT/META-INF und der Fehler bleibt bestehen.

Irgendeine Idee?

1voto

Hobart Punkte 11

Ich nehme an, Sie verwenden M2E. Wenn ja, öffnen Sie das Dialogfeld "Configure Build Path" für das Persistence-Projekt (klicken Sie mit der rechten Maustaste auf den Build-Pfad und wählen Sie das Untermenü "Build Path").

Wenn Sie sich den Ordner "resources" ansehen, werden Sie vermutlich "Excluded" sehen: **"; dies verhindert, dass Eclipse die Dateien in das lokale Ausgabeverzeichnis kopiert und dass sie für abhängige Projekte verfügbar sind. Markieren Sie diese Zeile und klicken Sie auf "Entfernen".

Ich habe keine Ahnung, warum M2E dies tut, und ich weiß, dass es eine Einstellung gibt, um es zu deaktivieren, aber ich mache es einfach manuell.

1voto

Thomas Broyer Punkte 64153

Starten Sie die Anwendung richtig? https://developers.google.com/eclipse/docs/faq#gwt_with_maven

Beachten Sie insbesondere, dass Sie "mvn war:exploded" ausführen müssen, um Ihre Abhängigkeiten target/myapp-0.0.1-SNAPSHOT/WEB-INF/lib zu kopieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X