Maven Jetty 垃圾邮件 "scanned from multiple location"

Maven Jetty spamming "scanned from multiple location"

所以,我是 Jetty 和 Maven 的新手,我的第一个项目发送了数百个警告,例如

[WARNING] com.google.inject.util.Providers scanned from multiple locations:
jar:file:///C:/Users/pedro/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar!/com/google/inject/util/Providers.class,
jar:file:///C:/Users/pedro/.m2/repository/com/google/inject/guice/4.2.1/guice-4.2.1-no_aop.jar!/com/google/inject/util/Providers.class

我在网上找到一些答案说是因为有重复的依赖关系,我必须在pom.xml.classpath上修复它,但我没有重复的依赖关系和不知道如何解决 .classpath.

有人知道我该如何解决吗?

这是一个合理的警告。

bytecode/annotation 扫描发现您有多个位置 class com.google.inject.util.Providers

您有来自 2 个不同位置的 2 个不同版本的 guice。

在这种情况下,类加载器有时使用 sisu-guice-2.1.7-noaop.jar,有时使用 guice-4.2.1-no_aop.jar class。

您的情况是运行时间不可预测。

每次 运行 应用程序都会发生不同的行为。

鉴于这些来自您的 maven 基础设施,我建议 运行使用一个重复的 class finder maven 插件来清理您的依赖关系树。

查看其他问题 Find duplicated classes in classpath

我解决了它,删除了依赖项

<dependency>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.4.30.v20200611</version>
</dependency>

并且只保留插件

<plugin>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.4.30.v20200611</version>
</plugin>