我试图弄清楚是否可以检查 Maven 依赖项在项目的配置配置中是否仍然兼容。
这是我的测试设置:
有3个项目。Child-A
, Child-B
, Child-C
.
Child-A
有 2 个版本,彼此不兼容。版本0.0.1-SNAPSHOT
有方法
public void myMethod(String oneParameter)
版本0.0.2-SNAPSHOT
将此方法更改为
public void myMethod(String oneParameter, String secondParameter)
Child-B
依赖于Child-A
in Version并使用一个参数0.0.1-SNAPSHOT
调用该方法。
public class ChildB {
public void callChild(String myParam) {
final ChildA test = new ChildA();
String methodParam = String.format("%s is calling %s with Parameter %s ", this.getClass().getName(),
test.getClass().getName(), myParam);
test.myMethod(methodParam);
}
}
Child-C
现在有对 Child-B 的依赖和对 Child-A Version 的依赖0.0.2-SNAPSHOT
。
Child-C
Child-B
以这种方式调用:
public static void main(String[] args) {
ChildB inner = new ChildB();
inner.callChild(" Parameter from main method! ");
}
对于编译器来说这很好,但在运行时Child-B
会遇到麻烦,因为Child-A
版本中存在0.0.2-SNAPSHOT
,因此只有一个参数的方法不再存在。
我正在尝试以这种方式配置我的 maven 设置,以便在Child-C
构建时检查其依赖项的签名/兼容性及其有效 pom.xml 的设置。
我认为 maven animal-sniffer 插件可能是一个解决方案,但没有找到检查内部依赖关系的部分。
有人知道如何检查这些行为吗?