X-Git-Url: https://juplo.de/gitweb/?p=hibernate4-maven-plugin;a=blobdiff_plain;f=src%2Fsite%2Fxhtml%2Fconfiguration.xhtml;fp=src%2Fsite%2Fxhtml%2Fconfiguration.xhtml;h=bfaf6fece527682180c85c6ba7ddfb65949dfca8;hp=0000000000000000000000000000000000000000;hb=64900890db2575b7a28790c5e4d5f45083ee94b3;hpb=bd78c276663790bf7a3f121db85a0d62c64ce38c diff --git a/src/site/xhtml/configuration.xhtml b/src/site/xhtml/configuration.xhtml new file mode 100644 index 00000000..bfaf6fec --- /dev/null +++ b/src/site/xhtml/configuration.xhtml @@ -0,0 +1,213 @@ + + +
+ + + +
+ 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>${project.version}</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. + + So, you should never fire up this configuration on your production + system, or your database might be erased! + +
++ Hence, you should specify a different url for testing like in the + following snippet: +
++<plugin> + <groupId>de.juplo</groupId> + <artifactId>hibernate4-maven-plugin</artifactId> + <version>${project.version}</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
.
+
+ 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>${project.version}</version> + <executions> + <execution> + <goals> + <goal>export</goal> + </goals> + </execution> + </executions> + <configuration> + <url><![CDATA[jdbc:hsqldb:target/db/testdb;shutdown=true]]></url> + </configuration> + </plugin> + +<plugins>+
+ 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>${project.version}</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. +
++ The configuration is gathered in a fix order: +
+hibernate.properties
+ 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 realy 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>${project.version}</version> + <executions> + <execution> + <goals> + <goal>export</goal> + </goals> + </execution> + </executions> + <configuration> + <password>${my-password-property}</password> + </configuration> +</plugin>+ +