我的具有多个子项目的 Java 项目正在将Immutables库用于值对象。
package foo.bar;
import org.immutables.value.Value;
public class MyContainerClass {
@Value.Immutable
public interface Baz {
String name();
}
// more interfaces here
}
这会在同一个包中生成一个名为foo.bar.ImmutableBaz
实现Baz
接口的类。另一个子项目最近在同一个包中声明了另一个同名接口foo.bar
,但容器类不同。这导致了第二foo.bar.ImmutableBaz
类的产生。这两个类无意中以相同的完全限定名称结束,这导致在运行时加载错误的类出现问题。
我如何最好地检测这些命名冲突,例如在测试中或作为 CI 管道的一部分?
我知道我可以使用 Immutables 指定目标包,但我希望检测并避免无意的冲突。