首页 > 解决方案 > 为什么不在 Maven 中编译测试依赖项?

问题描述

我正在尝试在 Tomcat 应用程序中使用 Morphia (MongoDB)。但我收到了这个错误:

错误消息:SLF4J:未找到 SLF4J 提供程序。 SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:有关详细信息,请参阅 http://www.slf4j.org/codes.html#noProviders。 线程异常

给定的链接确认 JAR 文件丢失。

在 pom.xml 文件中,Morphia 添加了 compile 作为范围。

<dependency>
    <groupId>dev.morphia.morphia</groupId>
    <artifactId>core</artifactId>
    <version>1.5.3</version>
    <scope>compile</scope>
</dependency>

所有依赖项都作为库添加并且可以在 Eclipse 中使用。

Maven 库

但只有 Morphia 本身正在编译。

查看MVNrepository我怀疑只有“编译依赖项”而不是“测试依赖项”正在编译。

但是将 SLF4J API 额外添加到 pom.xml 并没有改变任何东西。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.8.0-beta2</version>
    <scope>compile</scope>
</dependency>

标签: javamongodbmavenmorphia

解决方案


就像@eis 和给定的链接一样,我必须添加一个提供者,而不仅仅是 API。

但版本也不兼容。如果其他人有此问题,请使用此版本:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.2.3</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>dev.morphia.morphia</groupId>
    <artifactId>morphia-core</artifactId>
    <version>2.1.5</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.8.0-beta2</version>
    <scope>compile</scope>
</dependency>

推荐阅读