在运行时识别模块

时间:2016-11-09 22:14:53

标签: java maven

我有一个多模块maven项目。一个模块对maven项目中的其他模块有多个依赖关系。我想在运行时检查每个类来自哪个顶级模块 - 有没有办法用反射做到这一点?

例如:

com.company:running-module:jar:1.0.0
 +- com.company:top-level-module-1:jar:1.0.0:compile
 |  \- com.company:low-level-module-1:jar:1.0.0:compile
 |     \- ClassOfInterest.java
 +- com.company:top-level-module-2:jar:1.0.0:compile
 |  \- com.company:low-level-module-1:jar:1.0.0:compile
 |     \- ClassOfInterest.java
 \- com.company:top-level-module-3:jar:1.0.0:compile
    \- com.company:low-level-module-2:jar:1.0.0:compile
       \- OtherClassOfInterest.java

检查ClassOfInterest将返回top-level-module-1top-level-module-2,同时检查OtherClassOfInterest将返回`top-level-module-3。

1 个答案:

答案 0 :(得分:0)

如果有办法做到这一点,那将是非常黑客的。

将每个模块修改为具有不同的顶级包,然后通过检查完整的类名称,您可以轻松地进行反射。