【发布时间】:2016-11-23 08:03:13
【问题描述】:
我正在尝试确定是否可以检查 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 依赖于版本0.0.1-SNAPSHOT 中的Child-A,并使用one 参数调用该方法。
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 版本 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 的设置。
我认为 maven animal-sniffer 插件可能是一个解决方案,但没有找到检查内部依赖关系的部分。
有人知道如何检查这些行为吗?
【问题讨论】:
-
没有人知道如何继续这个挑战。
标签: java maven maven-plugin dependency-management maven-dependency