Execution is only skipped, if explicitly told so
[hibernate4-maven-plugin] / src / site / apt / pitfalls.apt
index 5bbbff1..0640e7f 100644 (file)
@@ -1,5 +1,22 @@
 Known Pitfalls
 
+* hibernate4-maven-plugin always needs a database-connection
+
+  The default-configuration uses the EXPORT-target of the SchemaExport-Tool.
+  If you do not need to create a database with the evaluated schema, you can
+  use the NONE- or the SCRIPT-target.
+  This can be achieved with the commandline-parameter
+  <<<-Dhibernate.export.target=SCRIPT>>> or with the following configuration:
+
+------------
+<configuration>
+  <target>SCRIPT</target>
+</configuration>
+------------
+
+  But even when no database is to be created, hibernate always needs to know
+  the dialect. Hence, the plugin will fail if this parameter is missing!
+
 * Dependency for driver-class XYZ is missing
 
   One regular problem is the scope of the jdbc-driver-dependency.
@@ -95,3 +112,51 @@ Known Pitfalls
   </configuration>
 </plugin>
 ------------
+
+* The database will not be recreated after a manual drop/clean
+
+  If one manually drops the database or removes the hsqldb-files, it will not
+  be recreated by the hibernate4-maven-plugin, because it cannot detect, that
+  the database needs to be recreated.
+  This happens, because the plugin will not recreate the database if neither
+  the configuration nor the annotated classes have changed, because an
+  unnecessary drop-create-cycle might take a long time. The plugin will
+  report that like this:
+
+-------------
+[INFO] No modified annotated classes found and dialect unchanged.
+[INFO] Skipping schema generation!
+-------------
+
+  If one always uses <<<mvn clen>>> for cleanup, this will not happen.
+  Otherwise the recreation must be {{{./force.html}forced}}:
+
+-------------
+mvn hibernate4:export -Dhibernate.export.force=true
+-------------
+
+* The hibernate4:export goal is executed, even if <<<maven.test.skip>>> is
+  <<<true>>>
+
+  Up to version 1.0.2 the hibernate4-maven-plugin automatically skipped
+  its execution, when <<<maven.test.skip>>> was set to <<<true>>>. Starting
+  with version 1.0.3 this behaviour was changed. The plugin now only skips
+  its execution, when explicitliy told so via the configuration-parameter
+  <<<skip>>> or via the property <<<hibernate.export.skip>>>.
+
+  This change was made, because in some use-cases it is necessary, that the
+  database-schema is always build and/or exported, even if the tests are
+  skipped, which was not possible with the old behaviour.
+
+  If you need/like the old behaviour, you can turn it on in your configuration:
+
+------------
+<plugin>
+  <groupId>de.juplo</groupId>
+  <artifactId>hibernate4-maven-plugin</artifactId>
+  ...
+  <configuration>
+    <skip>${maven.test.skip}</skip>
+  </configuration>
+</plugin>
+------------