Configuration Examples
- -Configuration through a hibernate.properties-File
- -- The most simple way to configure the plugin is, to put all the - hibernate-configuration in a hibernate.properties-file on your - classpath. Put the file in the resources-folder. Maven will put - it in the class-folder of your webapp, where it will be picked up - by this plugin as well as by Hibernate 4. -
- -- Doing so, the only additionally configuration needed, to activat the plugin - is the following entry in the plugins-section of your pom.xml: -
- --<plugin> - <groupId>de.juplo</groupId> - <artifactId>hibernate4-maven-plugin</artifactId> - <version>1.1.1</version> - <executions> - <execution> - <goals> - <goal>export</goal> - </goals> - </execution> - </executions> -</plugin>
- But be aware, that in this case the database-url, that is - build in the application is the same that is used while testing, where - the database is droped and recreated by the plugin. - Because of that, - - you should never fire up this configuration on your production - system, or your database might be erased! - -
- -- A better approach is, to specify a different url for testing like in the - following snippet: -
- --<plugin> - <groupId>de.juplo</groupId> - <artifactId>hibernate4-maven-plugin</artifactId> - <version>1.1.1</version> - <executions> - <execution> - <goals> - <goal>export</goal> - </goals> - </execution> - </executions> - <configuration> - <url><![CDATA[jdbc:mysql://localhost/test-db]]></url> - </configuration> -</plugin>
- Configuration properties, that are set in the configuration-section - of the plugin-configuration cannnot be overwritten elsewere (for details - see Configuration-Method-Precedence). - You never can overwrite them by accident when specifying a property on - the commandline or in your settings.xml. -
-Configuration through maven-properties
- -- Alternatively, it is possible, to configure the plugin via maven-properties. - Each relevant configuration-option has a corresponding maven-property - (for a full list see the Documentation of the export-Mojo). - These are named after the - Hibernate JDBC Properties: -
- --
-
-
- hibernate.connection.driver_class - -
- hibernate.dialect - -
- hibernate.connection.url - -
- hibernate.connection.username - -
- hibernate.connection.password -
- So, instead of writing the hibernate-configuration in the properties-file, - like above, you could put it in the properties-section of your - pom.xml. -
- -- Thogether with the plugin-definition from above, the following would - be a complete configuration (again, the database-url was overwritten in - the plugin-configuration, to be sure to have a separate database for - testing): -
- --<properties> - <hibernate.connection.driver_class>org.hsqldb.jdbcDriver</hibernate.connection.driver_class> - <hibernate.dialect>org.hibernate.dialect.HSQLDialect</hibernate.dialect> - <hibernate.connection.url><![CDATA[jdbc:hsqldb:res:org.my.path.production_db]]></hibernate.connection.url> - <hibernate.connection.username>sa</hibernate.connection.username> - <hibernate.connection.password></hibernate.connection.password> -</properties> - -... - -<plugins> - - ... - - <plugin> - <groupId>de.juplo</groupId> - <artifactId>hibernate4-maven-plugin</artifactId> - <version>1.1.1</version> - <executions> - <execution> - <goals> - <goal>export</goal> - </goals> - </execution> - </executions> - <configuration> - <url><![CDATA[jdbc:hsqldb:target/db/testdb;shutdown=true]]></url> - </configuration> - </plugin> - -<plugins>
Configuration through the plugin-configuration
- -- A third way for configuring the plugin is the plugin-configuration. - The relevant configuration-parameters are: -
- --
-
-
- driverClassName - -
- hibernateDialect - -
- url - -
- username - -
- password -
- The equivalent of the configuration from the last section would look - like this: -
- --<plugin> - <groupId>de.juplo</groupId> - <artifactId>hibernate4-maven-plugin</artifactId> - <version>1.1.1</version> - <executions> - <execution> - <goals> - <goal>export</goal> - </goals> - </execution> - </executions> - <configuration> - <driverClassName>org.hsqldb.jdbcDriver</driverClassName> - <hibernateDialect>org.hibernate.dialect.HSQLDialect</hibernateDialect> - <url><![CDATA[jdbc:hsqldb:target/db/fotos;shutdown=true]]></url> - <username>sa</username> - <password></password> - </configuration> -</plugin>
- The parameter hibernateProperties (name of the hibernate-properties-file - to use, defaults to hibernate.properties) can only be configured through - this approach. -
- -- For more explanations, see the - Documentation of the export-Mojo. -
-Configuration-Method-Precedence
- -- The configuration is gathered in a fix order: -
- --
-
-
- hibernate.properties - -
- maven-properties - -
- plugin-configuration -
- If you are in doubt about where a configuration-value comes from, run - maven with the debug-output enabled: mvn -X hibernate4:export - and be aware, that maven-properties can be overwitten on the command-line, - in your ~/.m2/settings.xml and in a profile. -
- -- The plugin-configuration comes last and overwrites everything else. - That way, you can be sure, that a configuration-value, that is - specified in the plugin-configuration will never be overwritten by any - other configuration-method. -
- -- If you need to overwrite plugin-configuration-values with - maven-properties, you can use maven-properties in the plugin-configuration: -
- --<plugin> - <groupId>de.juplo</groupId> - <artifactId>hibernate4-maven-plugin</artifactId> - <version>1.1.1</version> - <executions> - <execution> - <goals> - <goal>export</goal> - </goals> - </execution> - </executions> - <configuration> - <password>${my-password-property}</password> - </configuration> -</plugin>