Maven在错误的地方寻找依赖关系(对于某些事情)



我正在将现有的ANT项目转换为Maven。我设法解决了大部分问题,但我在以下方面遇到了一些困难。

我试图理解为什么Maven会在与依赖它的工件相同的命名空间中为这些库寻找可传递的依赖项

以下是我在IntelliJ中运行应用程序时的错误示例。

[2020年8月19日16:08:12619][main][StandardJarScanner]警告失败扫描[文件:.m2/repository.org/glassfish/jaxb/jaxb runtime/2.3.1/FastInfoset-1.2.15.jar]来自类加载器层次结构-org.eclipse.jjetty.apache.jsp.JuliLog.warn(JuliLog.java:146(java.io.FileNotFoundException:.m2/repository.org/glassfish/jaxb/jaxb runtime/2.3.1/FastInfoset-1.2.15.jar(没有这样的文件或目录(

事实上,jaxb运行时2.3.1确实依赖于下面报告的库;但我不知道为什么它会在org/glassfish/jaxb/jaxb-runtime/2.3.1内部寻找FastInfoset。我对mail-1.4.jar也有同样的问题。没有其他依赖关系会给我带来这个问题。如有任何帮助,我们将不胜感激。谢谢

  • javax.mail.mail.14
    • 激活.jar
  • org.glassfish.jaxb.jaxb运行时。2.3.1
    • jaxb-api-2.3.1.jar
    • txw2-2.3.1.jar
    • istack-commons-runtime-3.0.7.jar
    • stax-ex1.8.jar
    • FastInfoset-1.2.15.jar
    • javax-activation-api-1.2.0.jar

我刚刚遇到了完全相同的问题。

为了解决这个问题,我找到的唯一解决方案是在我的项目中显式地将依赖项添加到glassfish.jaxb.runtime。

在IntelliJ:

右键单击项目->打开模块设置

'+'->来自Maven

键入jaxb运行时,然后选择需要依赖项的版本(此处为2.3.1(。

申请,你应该会很好

最新更新