Maven Dependencias

4 respostas
nandobgi

Estou aprendendo a utilizar o Maven e estou com um problema ao adicionar as dependencias do hibernate, até onde entendi para utilizar o hibernate no meu projeto é só adicionar no pom.xml da seguinte forma:

<dependencies>
  	<dependency>
  		<groupId>org.hibernate</groupId>
  		<artifactId>hibernate</artifactId>
  		<version>3.2.6.ga</version>
  	</dependency>
  	<dependency>
  		<groupId>org.hibernate</groupId>
  		<artifactId>hibernate-annotations</artifactId>
  		<version>3.4.0.GA</version>
  	</dependency>
</dependencies>

Mas quando vou rodar um teste:

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
	at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
	at br.com.sensatta.pedido.util.HibernateUtil.<clinit>(HibernateUtil.java:13)
	at br.com.sensatta.pedido.util.Teste.main(Teste.java:10)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)

O Maven não deveria baixar todas as dependencias necessárias?

[ ]'s

4 Respostas

Mikhas

Aproveitando o topico.

Alguem pode me indicar algum bom plugin para integra Maven e Eclipse. Ja tentei o Maven 2 Eclipse e o Q for Eclipse… porem sem sucesso.

L

Todas menos o SLF4J, pois esse não tem jeito mesmo. Não sei se você conhece, mas essa biblioteca é uma espécie de wrapper para todos os Loggers já existentes. Se não me engano, suporta quatro: Log4J, Log do JRE, Commons Logging e No-op (isso mesmo, um log que não loga). A idéia é você botar um jar comum so SLF4J mais um outro jar específico que faz a interface com o log que você usa. O artefato do Hibernate deve ter baixado junto o SLF4J comum, mas não o específico ao seu sistema de log, que você deve adicionar no pom assim (se o seu log é log4j):

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

Quanto ao plugin do eclipse, eu uso o m2eclipse em http://m2eclipse.codehaus.org/ . Até agora não está me dando problema.

E me parece que o NetBeans 6.5 também tem suporte ao Maven, é só baixar na tela de plugins extras.

J

Complementando o comentário do Leonardo, esta dependência aparece em tempo de execução:
o slf4j é utilizado bastante para contornar uma falha de projeto do commons-log com respeito
a classloaders, que atrapalha bastante o maven e outras ferramentas. Veja:

http://www.slf4j.org/legacy.html
http://www.qos.ch/logging/classloader.jsp

[]s

Jorge

nandobgi

Existe alguma regra onde algumas dependencias não são “instaladas” automaticamente, pois a biblioteca cp30 também não veio juntamente com o hibernate, precisei baixa-la.

[ ]'s

Criado 16 de janeiro de 2009
Ultima resposta 16 de jan. de 2009
Respostas 4
Participantes 4