Bestehendes Projekt auf Maven umstellen?

membersound

Bekanntes Mitglied
Hallo,

ich versuche gerade eine bereits lauffähige Hibernate Desktop App auf Maven umzustellen.

Dabei habe ich folgendes Problem beim run:
Java:
javax.persistence.PersistenceException: No Persistence provider for EntityManager named TestDB
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	at session.ModelDao.<init>(ModelDao.java:33)
	at gui.MainWindow$23.run(MainWindow.java:826)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at gui.MainWindow.main(MainWindow.java:822)

Alle Abhängigkeiten sind aufgelöst, Eclipse meckert nirgends. Dh die entsprechenden Libraries dürfen von Maven auch alle richtig eingebunden sein.
Und wie gesagt, ich habe ja nichts an dem Projekt an sich geändert, außer eben die Imports im Classpath gelöscht und es über Maven gelöst.

Ich weiß nicht ob es hilft wenn ich die POM poste, aber vielleicht kann mir jemand helfen?
Möglicherweise fehlt mir noch eine Abhängigkeit, obwohl der Compiler nicht meckert?

Danke

Java:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>TestDB</groupId>
	<artifactId>TestDB</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<!-- JUnit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
		</dependency>

		<!-- Hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.0.1.Final</version>
		</dependency>


		<!-- Uitils -->

		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-core</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-inject</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-mock</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-mock</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-dbunit</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-database</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-orm</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-easymock</artifactId>
			<version>3.3</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>
 
Vermutung: Deine persistence.xml befindet sich unter src/main/java/META-INF

Lösung: Neuen Ordner src/main/resources anlegen und dort den Ordner META-INF inklusive Inhalt hin verschieben.
 
Nein, befindet sich unter: src/main/resources/META-INF/persistence.xml

Es stimmt, zunächst war es an der falschen Stelle. Da bekam ich dann einen "persistence not found" error von Eclipse, vor dem compilieren.
Der ist nun aber weg, dh der Pfad sollte stimmen...
 
Hallo,

ich denke dir fehlt eine Abhängigkeit:

[XML]
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
[/XML]

Zitat aus der Hibernate-Doku:



Hibernate-entitymanager

Represents Hibernate's implementation of JPA, as specified at The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 317.
This artifact depends on hibernate-core​

Beste Grüße

Stareagle
 

Zurück
Oben