slf4j-log4j12未由具有“运行时”范围的maven打包

时间:2010-05-31 10:26:56

标签: maven maven-2 maven-3 slf4j dependency-management

我有一个由maven管理的项目,包括slf4j-api-1.5.8和log4j-1.2.14依赖项。 在运行时,slf4j需要slf4j-log4j12-1.5.8.jar来“桥接”输出到log4j。

所以在pom.xml中,我添加了这个依赖:

  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.5.8</version>
            <type>jar</type>
            <scope>runtime</scope>
        </dependency>
    </dependencies>
  </dependencyManagement>

构建(war:war)后,log4j-1.2.14.jarslf4j-api-1.5.8.jar都被添加到WEB-INF/lib目录中,但我找不到slf4j-log4j12-1.5.8.jar

然后我使用“Dependency Hierarchy”检查已解析的依赖项,但找不到slf4j-log4j12(因此它没有打包成WEB-INF/lib

这里出了什么问题?

环境:maven 3.0-beta1,m2-eclipse-0.10.0.20100209

1 个答案:

答案 0 :(得分:4)

依赖关系管理部分是一种集中依赖关系信息的机制,在依赖关系管理部分中添加依赖关系不会使它本身成为项目的依赖关系,您仍然需要将其声明为依赖关系:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.5.8</version>
      <type>jar</type>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
<dependencies>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
  </dependency>
</dependencies>