【发布时间】: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