sbt org.slf4j#slf4j-log4j12; $ {slf4j.version}:未找到

时间:2012-11-08 05:52:20

标签: maven hbase sbt slf4j pom.xml

我需要使用sbt:

获得hbase 0.92.2
libraryDependencies += "org.apache.hbase" % "hbase" % "0.92.2",

但是当我运行更新时出现了这个错误:

0.92.2 hbase org.slf4j #slf4j-log4j12; $ {slf4j.version}:未找到

我检查了pom文件中的hbase 0.92.2并且它有

<dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${slf4j.version}</version>
</dependency>

pom文件由remove repository提供。我不知道如何指定slf4j的版本,所以sbt可以在没有抱怨的情况下获得正确的版本。

2 个答案:

答案 0 :(得分:1)

我创建的build.sbt只有一行:

libraryDependencies += "org.apache.hbase" % "hbase" % "0.92.2"

然后我跑了:

sbt -Dslf4j.version=1.4.3 update

结果很好!

我甚至试过这个:

sbt -Dslf4j.version=1.6.6 update

这也有效。

答案 1 :(得分:0)

你需要在pom中指定slf4j.version属性,如下所示:

<properties>
     <slf4j.version>1.7.2</slf4j.version>
<properties>

我将属性值设置为1.7.2,这是最新的slf4j版本。您应该根据自己的情况选择合适的版本。

编辑:

如果可以,请尝试抓取更高版本的hbase。更高版本在基本构建配置文件中声明了slf4j.version。

编辑:

我也相信sbt有办法通过pomExtra和BasicManagedProject的pomPostProcess向pom添加信息。

检查一下,你可以为slf4j.version添加属性节点。我在这里猜测,因为我不是专家。