Just in case anybody else needs it...
---------- Forwarded message ----------
From: Jose Gonzalez Gomez <[EMAIL PROTECTED]>
Date: 06-jul-2006 8:40
Subject: Re: [m2] Frustration getting Maven 2 and Hibernate working together
To: Paul Kuykendall <[EMAIL PROTECTED]>
Ok, here we go...
First of all, add this to settings.xml (in your .m2 directory) in order to
be able to download plugins from the mojo repository:
<settings>
<!-- Proxy, servers, whatever you have here -->
<!-- Access to mojo.codehaus.org plugins -->
<profiles>
<profile>
<id>Snapshots</id>
<pluginRepositories>
<pluginRepository>
<id>Maven Snapshots</id>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>Snapshots</activeProfile>
</activeProfiles>
</settings>
Now, declare some dependencies in your pom, including the plugin
configuration and your desired JDBC driver (PostgreSQL in this case):
<?xml version="1.0" encoding="UTF-8"?>
[...]
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<hibernate>
<configurationFile>/src/main/resources/hibernate.cfg.xml</configurationFile>
</hibernate>
<outputDirectory>
<hbm2cfgxml>src/main/resources</hbm2cfgxml>
</outputDirectory>
</configuration>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.1-407.jdbc3 </version>
</extension>
</extensions>
</build>
<!-- =============== HIBERNATE PLUGIN =============== -->
<dependencies>
[...]
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.2.0.cr1</version>
<exclusions>
<exclusion>
<groupId>javax.persistence </groupId>
<artifactId>ejb</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
Comments on this: first of all, I have no version declared for
persistence-api because I have a parent pom with dependency management (I
will include hibernate-annotations there once I have an stable
configuration); you must include hibernate-annotations as a dependency in
your project only if you want to use hibernate propietary annotations; if
you do include hibernate-annotations you must exclude the
javax.persistence:ejb dependency, as it uses and old draft version I've been
unable to find on the Internet.
Finally you must create your /src/main/resources/hibernate.cfg.xml,
something like this:
<?xml version=' 1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- a SessionFactory instance listed as /jndi/name -->
<session-factory name="java:hibernate/SessionFactory">
<!-- properties -->
<property name="connection.driver_class">org.postgresql.Driver
</property>
<property
name="connection.url">jdbc:postgresql://your.server/yourDatabase</property>
<property name="connection.username">yourUser</property>
<property name="connection.password">yourPassword</property>
<property name="dialect"> org.hibernate.dialect.PostgreSQLDialect
</property>
<property name="show_sql">false</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory </property>
<property name="jta.UserTransaction
">java:comp/UserTransaction</property>
<!-- mapping files -->
<!-- <mapping package="org.surveyforge.classification " /> -->
<mapping class="org.surveyforge.classification.Family" />
</session-factory>
</hibernate-configuration>
I was testing a single class, I guess if you have a full package you may use
the commented line to include all the classes. Once I did this, I run mvn
hibernate3:hbm2ddl and the plugin connected to my database and created the
table. I think I don't miss anything...
HTH, best regards
Jose
2006/7/5, Paul Kuykendall <[EMAIL PROTECTED]>:
I would be more appreciative than you can ever imagine if you could send
that information.
Thanks!
/Paul