我有 2 个项目,比如说项目 A 和项目 B。项目 A 对项目 B 有 Maven 依赖项。两个项目都包含Test
同一个包中的类。
现在当我导入时,
import com.my.package.Test;
从项目 A 中的另一个类,我认为(在运行时)它使用项目 B 中的测试类,而不是同一项目中包含的类。
有谁知道这是否应该如何工作?
您不应该拥有具有相同 FQN-s(完全限定名称,例如com.foo.MyTest
)的类。拥有重复的类只会导致这类问题。从两个工件之一中删除该类。然后使用maven-jar-plugin
创建一个 test-jar 工件,以便您可以在两个项目之间共享您的类。
你也可以看看这个 SO answer。
第一个类加载器获胜。maven 中的类加载器顺序与依赖顺序相同,但您应该在不同的项目中拥有具有相同 FQN 的类。