Tidak yakin apakah Anda melakukan sesuatu yang mirip dengan apa yang saya lakukan, tetapi Im menghasilkan beban java sumber dari XSD menggunakan JAXB dalam komponen terpisah menggunakan Maven. Katakanlah artefak ini disebut "model-dasar"
Saya ingin mengimpor artefak ini yang berisi sumber java dan menjalankan hibernasi di semua kelas di toples artefak "model dasar" saya dan tidak menentukan masing-masing secara eksplisit. Saya menambahkan "model-dasar" sebagai ketergantungan untuk komponen hibernasi saya, tetapi masalahnya adalah tag di persistence.xml hanya memungkinkan Anda untuk menentukan jalur absolut.
Cara saya mengatasinya adalah dengan menyalin ketergantungan jar "model dasar" saya secara eksplisit ke direktori target saya dan juga menghapus versinya. Jadi jika saya membangun artefak "model-dasar", ia menghasilkan "model-dasar-1.0-SNAPSHOT.jar", langkah sumber-salinan menyalinnya sebagai "basis-model.jar".
Jadi di pom Anda untuk komponen hibernasi:
<!-- 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>
Kemudian saya memanggil plugin hibernate di tahap berikutnya "kelas proses":
<!-- 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>
dan akhirnya di persistence.xml saya, saya dapat secara eksplisit mengatur lokasi jar sebagai:
<jar-file>target/dependency/base-model.jar</jar-file>
dan tambahkan properti:
<property name="hibernate.archive.autodetection" value="class, hbm"/>