सुनिश्चित नहीं हैं कि आप जो कुछ कर रहे हैं, उसके समान ही हैं, लेकिन Im एक XSD से सोर्स जावा का भार जेनरेट कर रहा है, जो JENB का उपयोग करते हुए एक अलग घटक में मावेन का उपयोग कर रहा है। बता दें कि इस विरूपण साक्ष्य को "बेस-मॉडल" कहा जाता है
मैं जावा स्रोत वाले इस विरूपण साक्ष्य को आयात करना चाहता था और अपने "बेस-मॉडल" विरूपण साक्ष्य जार में सभी वर्गों पर हाइबरनेट चलाना और प्रत्येक को स्पष्ट रूप से निर्दिष्ट नहीं करना चाहता था। Im "हाइबरनेट घटक के लिए एक निर्भरता के रूप में" बेस-मॉडल "जोड़ रहा है लेकिन परेशानी दृढ़ता में टैग है। xml केवल आपको पूर्ण पथ निर्दिष्ट करने की अनुमति देता है।
जिस तरह से मुझे यह मिला, वह है मेरे "बेस-मॉडल" जार निर्भरता की नकल करना, मेरे लक्ष्य डायर की खोज करना और उसका संस्करण भी निकालना। इसलिए जब मैं अपनी "बेस-मॉडल" कलाकृति का निर्माण करता हूं तो यह "बेस-मॉडल-1.0-SNAPSHOT.jar" उत्पन्न करता है, कॉपी-रिसोर्स चरण इसे "बेस-मॉडल.जर" के रूप में कॉपी करता है।
हाइबरनेट घटक के लिए अपने पोम में:
<!-- 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>
फिर मैं अगले चरण "प्रोसेस-क्लास" में हाइबरनेट प्लगइन को कॉल करता हूं:
<!-- 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>
और अंत में मेरे हठ में। xml मैं स्पष्ट रूप से जार का स्थान निर्धारित कर सकता हूं:
<jar-file>target/dependency/base-model.jar</jar-file>
और संपत्ति जोड़ें:
<property name="hibernate.archive.autodetection" value="class, hbm"/>