Improved documentaion (new FAQ-entries)
authorKai Moritz <kai@juplo.de>
Wed, 31 Jul 2013 23:45:22 +0000 (01:45 +0200)
committerKai Moritz <kai@juplo.de>
Thu, 1 Aug 2013 00:09:24 +0000 (02:09 +0200)
src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java
src/site/apt/pitfalls.apt
src/site/site.xml

index 044e330..e67a078 100644 (file)
@@ -226,12 +226,15 @@ public class Hbm2DdlMojo extends AbstractMojo
   /**
    * Target of execution:
    * <ul>
-   *   <li><strong>NONE</strong> do nothing - just validate the configuration (forces excecution, signals skip)</li>
-   *   <li><strong>EXPORT</strong> create database (<strong>DEFAULT!</strong>. forces excecution, signals skip)</li>
-   *   <li><strong>SCRIPT</strong> export schema to SQL-script</li>
+   *   <li><strong>NONE</strong> only export schema to SQL-script (forces excecution, signals skip)</li>
+   *   <li><strong>EXPORT</strong> create database (<strong>DEFAULT!</strong>). forces excecution, signals skip)</li>
+   *   <li><strong>SCRIPT</strong> export schema to SQL-script and print it to STDOUT</li>
    *   <li><strong>BOTH</strong></li>
    * </ul>
    *
+   * A databaseconnection is only needed for EXPORT and BOTH, but a
+   * Hibernate-Dialect must always be choosen.
+   *
    * @parameter property="hibernate.export.target" default-value="EXPORT"
    */
   private String target;
@@ -245,6 +248,8 @@ public class Hbm2DdlMojo extends AbstractMojo
    *   <li><strong>BOTH</strong> (<strong>DEFAULT!</strong>)</li>
    * </ul>
    *
+   * If NONE is choosen, no databaseconnection is needed.
+   *
    * @parameter property="hibernate.export.type" default-value="BOTH"
    */
   private String type;
@@ -684,6 +689,7 @@ public class Hbm2DdlMojo extends AbstractMojo
        * hibernate does not use the context-classloader of the current
        * thread and, hence, would not be able to resolve the driver-class!
        */
+      getLog().debug("Target: " + target + ", Type: " + type);
       switch (target)
       {
         case EXPORT:
index 5bbbff1..61b5bc9 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,24 @@ 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 forced:
+
+-------------
+mvn hibernate4:export -Dhibernate.export.force=true
+-------------
index a8a3bef..fcc5932 100644 (file)
@@ -22,7 +22,7 @@
       <item name="Parameter Documentation" href="export-mojo.html"/>
       <item name="Enable Debug-Output" href="debugging.html"/>
       <item name="Force Exceution" href="force.html"/>
-      <item name="Known Pitfalls" href="pitfalls.html"/>
+      <item name="Known Pitfalls (FAQ)" href="pitfalls.html"/>
     </menu>
     <menu ref="reports"/>
     <breadcrumbs>