私がしていることと似たようなことをしているのかどうかはわかりませんが、Imは、Mavenを使用する別のコンポーネントでJAXBを使用してXSDからソースJavaのロードを生成しています。このアーティファクトは「ベースモデル」と呼ばれているとしましょう
Javaソースを含むこのアーティファクトをインポートし、「ベースモデル」のアーティファクトjar内のすべてのクラスに対して休止状態を実行し、それぞれを明示的に指定したくありませんでした。hibernateコンポーネントの依存関係として「base-model」を追加しましたが、問題は、persistence.xmlのタグで絶対パスのみを指定できることです。
私が解決した方法は、「ベースモデル」jarの依存関係を明示的にターゲットディレクトリにコピーし、そのバージョンを取り除くことです。したがって、「base-model」アーティファクトをビルドすると、「base-model-1.0-SNAPSHOT.jar」が生成されますが、copy-resourcesステップは、それを「base-model.jar」としてコピーします。
したがって、休止状態コンポーネントのpomで:
<!-- 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>
次に、次のフェーズでhibernateプラグインを「プロセスクラス」と呼びます。
<!-- 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>
最後に、persistence.xmlで、jarの場所を明示的に設定できます。
<jar-file>target/dependency/base-model.jar</jar-file>
プロパティを追加します。
<property name="hibernate.archive.autodetection" value="class, hbm"/>