Não tenho certeza se você está fazendo algo semelhante ao que estou fazendo, mas estou gerando uma carga de fonte java de um XSD usando JAXB em um componente separado usando Maven. Vamos dizer que este artefato é chamado de "modelo base"
Eu queria importar este artefato contendo o código-fonte java e executar o hibernate em todas as classes em meu jar de artefato "modelo base" e não especificar cada uma explicitamente. Estou adicionando "modelo base" como uma dependência para meu componente de hibernação, mas o problema é que a tag em persistence.xml permite apenas que você especifique caminhos absolutos.
A forma como eu contornei isso é copiar minha dependência jar do "modelo base" explicitamente para meu diretório de destino e também remover a versão dele. Portanto, enquanto se eu construir meu artefato "modelo-base", ele gerar "modelo-base-1.0-SNAPSHOT.jar", a etapa de recursos de cópia o copia como "modelo-base.jar".
Portanto, em seu pom para o componente de hibernação:
<!-- 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>
Em seguida, chamo o plug-in de hibernação na próxima fase de "classes de processo":
<!-- 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>
e, finalmente, em meu persistence.xml, posso definir explicitamente a localização do jar assim:
<jar-file>target/dependency/base-model.jar</jar-file>
e adicione a propriedade:
<property name="hibernate.archive.autodetection" value="class, hbm"/>