您的位置:首页 > 其它

SSH:Hibernate log4j与自定义版本冲突问题

2014-05-19 14:38 190 查看

Maven依赖关系中Scope的作用

在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:

1、  compile,缺省值,适用于所有阶段,会随着项目一起发布。

2、  provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

3、  runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

4、  test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

5、  system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

 

异常描述

nestedexception is java.lang.NoSuchMethodError:org.apache.log4j.Logger.trace(Ljava/lang/Object;)
 

解决方案

Hibernate-core-version.jar的子包:jboss-logging-version.jar中包含了一个provider级别的pomdependency,如下:



其版本号是1.2.16,因为scope是provided,所以用户必须提供这个版本的依赖。这样我们在自己的pom.xml中定义log4j时,版本必须与上述的一致。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh