Sunday, April 25, 2010

Configurando o Hibernate 3.5 com Maven

No fim do mês de Março foi lançado o Hibernate 3.5 com novas funcionalidades e a partir dessa versão compatível a JPA2, agora um concorrente ao EclipseLink a implementação de referência. No ScrumToys - projeto da Globalcode exemplo no Netbeans 6.8 - utilizamos o EclipseLink como provider JPA.


O Maven simplifica bastante a vida do desenvolvedor java, isso é indiscutível afinal ficar controlando dependências na mão ficou fora de moda a um tempo. Mesmo quem esta começando usar Java pode tornar essa experiencia mais produtiva, mão na massa sem se preocupar com a burocracia dos jars.

A documentação do Hibernate mostra a configuração exemplo de projeto usando o maven, mas esse mapeamento não funciona por não definir a tag version na dependency, por isso montei um exemplo de pom.xml para utilizar o Hibernate 3.5:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>br.com.globalcode</groupId>
  <artifactId>hibernate-exemplo</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>hibernate-exemplo</name>
  <url>http://maven.apache.org</url>

  <repositories>
    <repository>
        <url>http://repository.jboss.com/maven2/</url>
        <id>hibernate-support</id>
        <layout>default</layout>
        <name>Repository for library Library[hibernate-support]</name>
    </repository>
  </repositories>

  <dependencies>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.0-Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.5.0-Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.5.0-Final</version>
    </dependency>

    <dependency>
        <groupId>javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.8.0.GA</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.10</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.0.5</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Agora é só mandar bala com recursos do hibernate.

http://twitter.com/edermag
http://www.yaw.com.br

3 comments:

Unknown said...

Desculpa minha ignorância, mais onde coloco este arquivo pom.xml ?

Eu não consigo saber qual é o diretório raiz dos projetos feito no netbeans.

Se puder me dar uma luz.

YABN said...

Muito bom seu post, fiquei procurando algum tempo sobre como fazer este pom e realmente o site do hibernate não está correto.

parabéns!

Vitor said...

Valeu cara! muito bom o post.