【问题标题】:Maven does not find dependencies, eclipse works correctly, with ca.uhn.hapi.fhir dependencymaven找不到依赖,eclipse正常工作,有ca.uhn.hapi.fhir依赖
【发布时间】:2021-05-08 02:12:45
【问题描述】:

我正在开发一个可以在 Eclipse 中正常工作的 Java 项目。当我使用另一个 IDE 时,或者当我尝试使用 maven 编译它时,我遇到了一些编译错误,所有这些都与特定的导入有关。 在 pom 中,我有:

        <dependency>
            <groupId>ca.uhn.hapi.fhir</groupId>
            <artifactId>hapi-fhir-structures-dstu3</artifactId>
            <version>3.2.0</version>
        </dependency>

该库已正确导入,我可以使用包 ca.uhn.hapi....中的一些库。

在代码的某些点,我使用这个类:

org.hl7.fhir.exceptions.FHIRException;

所以,问题是:当我使用 eclipse 编译时,它可以正常工作。 org.hl7.fhir.exceptions.FHIRException 类;正确导入和使用。当我使用 maven (mvn install) 编译时,我有这个错误:

.java:[5,31] package org.hl7.fhir.exceptions does not exist

听起来包没有正确导入。我认为eclipse做了一些自动操作来正确导入代码。 另一个特别的事情是 org.hl7.fhir.exceptions 包含在 ca.uhn.hapi.fhir 中。目录结构为:

.m2\repository\ca\uhn\hapi\fhir\org.hl7.fhir.utilities\5.2.0\org.hl7.fhir.utilities-5.2.0.jar

这些类在包org.hl7.fhir.exceptions中;

有没有办法解决这个问题? Eclipse 如何识别我正在导入一个包 X,它包含在一个名称完全不同的 pom 中? (org.hl7 VS ca.uhn)

【问题讨论】:

  • 您列出的 maven 依赖项具有 ca.uhn.hapi.fhir:hapi-fhir-utilities:3.2.0,而不是您在本地 mvn-repo 中查找的 5.2.0。 3.2.0还包含那个类,那不是问题。但是,如果您正在寻找同一组依赖项的不同版本,那么您的 pom 中可能会发生影响依赖版本解析的其他事情——这可能会导致各种 ClassNot、NoSuchMethod 等错误
  • 如果你在命令行上构建不起作用......你的构建中存在问题并不重要,如果 Eclipse 工作(或看起来像工作......)你有那个项目的链接?除此之外,您使用旧版本还有充分的理由吗?

标签: java eclipse maven build dependencies


【解决方案1】:

解决了!这是一个微不足道的 Maven 存储库问题。由于某些原因,这是一个由 Maven 存储库缓存错误引起的错误。我删除了存储库文件夹(.m2/repository)并再次下载了依赖项......很奇怪,因为文件相同。

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 2012-08-16
    • 2011-12-21
    • 2017-03-29
    • 2016-10-01
    • 2020-04-18
    • 2018-02-21
    相关资源
    最近更新 更多