Ich bin mir nicht sicher, ob Sie etwas Ähnliches tun wie ich, aber ich generiere eine Ladung Quell-Java von einer XSD mit JAXB in einer separaten Komponente mit Maven. Nehmen wir an, dieses Artefakt heißt "Basismodell".
Ich wollte dieses Artefakt, das die Java-Quelle enthält, importieren und den Ruhezustand über alle Klassen in meinem Artefakt-Jar "Basismodell" ausführen und nicht jedes explizit angeben. Ich füge "Basismodell" als Abhängigkeit für meine Ruhezustandskomponente hinzu, aber das Problem ist, dass das Tag in persistence.xml nur die Angabe absoluter Pfade ermöglicht.
Die Art und Weise, wie ich es umgangen habe, besteht darin, meine "Basismodell" -Jar-Abhängigkeit explizit in mein Zielverzeichnis zu kopieren und auch die Version davon zu entfernen. Wenn ich also mein Artefakt "Basismodell" erstelle, wird "Basismodell 1.0-SNAPSHOT.jar" generiert, und der Schritt "Kopierressourcen" kopiert es als "Basismodell.jar".
Also in deinem Pom für die Hibernate-Komponente:
<!-- We want to copy across all our artifacts containing java code
generated from our scheams. We copy them across and strip the version
so that our persistence.xml can reference them directly in the tag
<jar-file>target/dependency/${artifactId}.jar</jar-file> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>process-resources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
<configuration>
<includeArtifactIds>base-model</includeArtifactIds>
<stripVersion>true</stripVersion>
</configuration>
</plugin>
Dann nenne ich das Hibernate-Plugin in der nächsten Phase "Prozessklassen":
<!-- Generate the schema DDL -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>generate-ddl</id>
<phase>process-classes</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
</execution>
</executions>
<configuration>
<components>
<component>
<name>hbm2java</name>
<implementation>annotationconfiguration</implementation>
<outputDirectory>/src/main/java</outputDirectory>
</component>
</components>
<componentProperties>
<persistenceunit>mysql</persistenceunit>
<implementation>jpaconfiguration</implementation>
<create>true</create>
<export>false</export>
<drop>true</drop>
<outputfilename>mysql-schema.sql</outputfilename>
</componentProperties>
</configuration>
</plugin>
und schließlich kann ich in meiner persistence.xml die Position des Glases explizit so einstellen:
<jar-file>target/dependency/base-model.jar</jar-file>
und fügen Sie die Eigenschaft hinzu:
<property name="hibernate.archive.autodetection" value="class, hbm"/>