Hello Jose

Thanks for the help; I updated the documentation to reflect this. Also to
use the plugin you don't need to include the hibernate jars as dependency to
run the plugin.

Regards

Johann Reyes 

-----Original Message-----
From: Jose Gonzalez Gomez [mailto:[EMAIL PROTECTED] 
Sent: Thursday, July 06, 2006 3:18 AM
To: Maven Users List
Subject: Fwd: [m2] Frustration getting Maven 2 and Hibernate working
together

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



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to