2

我需要使用 sbt 获取 hbase 0.92.2:

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

但是当我运行更新时出现此错误:

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

我检查了 hbase 0.92.2 的 pom 文件,它有

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

pom 文件由删除存储库提供。我不知道如何为 slf4j 指定版本,所以 sbt 可以得到正确的版本而不会抱怨。

4

2 回答 2

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

那也奏效了。

于 2012-11-08T08:18:12.950 回答
0

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

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

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

编辑:

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

编辑:

我也相信 sbt 可以通过 BasicManagedProject 的 pomExtra 和 pomPostProcess 向 pom 添加信息。

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

于 2012-11-08T07:22:22.347 回答