【问题标题】:How to ignore or fix the duplicate classes warning?如何忽略或修复重复类警告?
【发布时间】:2015-06-08 05:52:28
【问题描述】:

我正在尝试使用Qulice 代码质量控制工具。

当我在我的项目上运行 qulice:check 时,我收到以下错误:

[WARNING] Found duplicate and different classes in [junit:junit:4.8.2,org.mockito:mockito-all:1.9.5] :
[WARNING]   org.hamcrest.BaseDescription
[WARNING]   org.hamcrest.BaseMatcher
[WARNING]   org.hamcrest.CoreMatchers
[WARNING]   org.hamcrest.Description
[WARNING]   org.hamcrest.Factory
[WARNING]   org.hamcrest.Matcher
[WARNING]   org.hamcrest.SelfDescribing
[WARNING]   org.hamcrest.StringDescription
[WARNING]   org.hamcrest.core.AllOf
[WARNING]   org.hamcrest.core.AnyOf
[WARNING]   org.hamcrest.core.DescribedAs
[WARNING]   org.hamcrest.core.Is
[WARNING]   org.hamcrest.core.IsAnything
[WARNING]   org.hamcrest.core.IsEqual
[WARNING]   org.hamcrest.core.IsInstanceOf
[WARNING]   org.hamcrest.core.IsNot
[WARNING]   org.hamcrest.core.IsNull
[WARNING]   org.hamcrest.core.IsSame
[WARNING]   org.hamcrest.internal.ArrayIterator
[WARNING]   org.hamcrest.internal.SelfDescribingValue
[WARNING]   org.hamcrest.internal.SelfDescribingValueIterator

我尝试禁用这些检查,但根据Qulice GitHub,此功能尚未实现。

我可以做些什么来消除这些错误?

【问题讨论】:

  • 我不知道 Qulice - 但您在这里向我们展示的内容看起来像是警告 - 而不是错误。此外,当警告指出“重复”类在 junit 和 mockito 中时,我不知道排除 org.hamcrest:hamcrest-core 应该如何提供帮助。
  • 我依赖于 JUnit 和 Mockito。假设它们都依赖于org.hamcrest:hamcrest-core。现在org.hamcrest:hamcrest-core 包含两次(一次用于 JUnit,一次用于 Mockito)。如果我将 org.hamcrest:hamcrest-core 排除在 JUnit 的依赖项中(但不包含在 Mockito 的依赖项中),它将仅包含一个并且理论上可以防止警告。
  • stackoverflow.com/questions/30680798/… 看着这个。我假设这些罐子也在测试范围内吗?
  • @HimanshuBhardwaj 这是一个不同的警告(由不同的插件生成),我通过排除一些依赖项来修复它。正如问题文本中已经说过的那样,排除 Hamcrest 依赖项并不能解决这些警告。

标签: java maven qulice


【解决方案1】:

你能做的最好的就是:

<plugin>
  <groupId>com.qulice</groupId>
  <artifactId>qulice-maven-plugin</artifactId>
  <configuration>
    <excludes>
      <exclude>duplicatefinder:.*</exclude>
    </excludes>
  </configuration>
</plugin>

例如,在 rultor 的 pom.xml 中查看它是如何完成的。您基本上禁用了整个重复查找器检查。目前无法仅禁用一个工件。

ps。在您的特定情况下,您不需要禁用重复查找器。只需使用正确版本的 JUnit、Mockito 和 Hamcrest,看看它是如何在 jcabi-parent pom.xml 中完成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2017-05-31
    • 2016-05-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多