La première fois que j'ai construit mon projet, je savais déjà que je deviendrais fou si ça n'arrêtait pas de faire les choses deux fois et maintenant le moment est venu. Je n'ai pas encore trouvé de solution ou peut-être que je ne sais pas comment rechercher ce problème.Hibernate3 Mauvaise configuration du plugin Maven?
J'ai quelques fichiers hbm.xml qui sont traités dans mon processus de construction. Tout d'abord, vous pouvez regarder la partie de mon pom.xml qui devrait faire l'affaire.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>generate-xml-files</id>
<phase>generate-resources</phase>
<goals>
<goal>hbm2cfgxml</goal>
</goals>
</execution>
<execution>
<id>generate-entities</id>
<phase>generate-resources</phase>
<goals>
<goal>hbm2java</goal>
</goals>
</execution>
<execution>
<id>generate-schema</id>
<phase>compile</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
</execution>
</executions>
<configuration>
<components>
<component>
<name>hbm2cfgxml</name>
<implementation>configuration</implementation>
<outputDirectory>target/classes</outputDirectory>
</component>
<component>
<name>hbm2java</name>
<implementation>configuration</implementation>
<outputDirectory>src/main/java</outputDirectory>
</component>
<component>
<name>hbm2ddl</name>
<implementation>configuration</implementation>
<outputDirectory>target/classes</outputDirectory>
</component>
</components>
<componentProperties>
<jdk5>true</jdk5>
<packagename>com.blazebit.web.cms.core.model</packagename>
<propertyfile>src/main/resources/database.properties</propertyfile>
<configurationfile>target/classes/hibernate.cfg.xml</configurationfile>
<!-- Tells the plugin to send the output to a file -->
<outputfilename>schema.sql</outputfilename>
<!-- Pretty Format SQL Code -->
<format>true</format>
<!-- Do not create tables automatically - other plug-ins will handle that -->
<export>false</export>
<!-- Do not print the DDL to the console -->
<console>false</console>
</componentProperties>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.1_3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.blazebit</groupId>
<artifactId>HibernateCfgBuilder</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>HibernateCfgBuilder</id>
<phase>generate-sources</phase>
<goals>
<goal>HibernateCfgBuilder</goal>
</goals>
</execution>
</executions>
<configuration>
<hbmXmlFilesDir>src/main/resources/com/blazebit/web/cms/core/model/</hbmXmlFilesDir>
<configFile>target/classes/hibernate.cfg.xml</configFile>
<packageName>com.blazebit.web.cms.core.model</packageName>
</configuration>
</plugin>
Maintenant laissez-moi vous expliquer ce que tout cela devrait faire.
- La première chose est hbm2cfg je pense, il devrait créer un hibernate.cfg.xml
- Deuxième étape est mon propre plug-in, qui ajoute les chemins aux fichiers hbm.xml dans le hibernate.cfg.xml (n'a pas pu trouver d'autres solutions pour ce problème)
- la troisième étape est hbm2java qui devrait générer les fichiers java dans mon répertoire sources
- Et hbm2ddl enfin il devrait créer le schema.sql pour ce modèle dans le classpath
Donc unds assez simple? Cela fonctionne même, mais il semble faire quelques choses deux fois ou même plus et maintenant ma construction prend environ 2 minutes ce qui m'ennuie:/ Quelqu'un pourrait-il me donner un conseil sur ce que je pourrais changer pour que ces étapes fonctionnent?
Je pense à écrire mon propre plugin qui fait ces étapes ... –
il y a un problème de performance majeur avec la génération de fichiers avec hbm2x. Il faut environ 2 secondes pour que chaque fichier hbm.xml soit traité. Ma dernière solution a été de créer un nouveau profil dans lequel les objectifs sont appelés, le profil doit être défini manuellement. J'ai également enlevé le hbm2cfg et étendu mon plugin pour analyser le database.properties parce que c'est beaucoup plus rapide comme ça! –