我有一个复杂的Java项目,最终归结为3个主要包:
com.myapp.client --> client-side classes
com.myapp.shared --> client- and server-side utility classes
com.myapp.server --> server-side classes
我想编写一个Ant任务,检查没有com.myapp.client
类显示为com.myapp.server
类的依赖项,反之亦然。我把这个概念称为“drabridging”,因为你在客户端和服务器代码之间建立了一个吊桥。如果发现违反依赖关系,Ant任务将失败构建。
对于我的生活,我无法弄清楚如何做到这一点。优选地,已存在某些东西,但谷歌没有回头任何东西。
缺少现有的开源解决方案,我的下一个猜测是遍历所有客户端类并检查其服务器类的导入;但是根据this SO question,Java编译器会在编译时抛弃导入引用。
所以,我在这里不知所措。有任何想法吗?提前谢谢!
答案 0 :(得分:0)
由于Java字节码通过其完全限定名称引用类,因此使用像BCEL或ASM这样的库应该是非常可行的(但并不容易)。
但是,我认为这个问题有一个非常独特的X-Y响铃,这意味着你正试图解决一个问题,这个问题实际上是你应该解决的根本原因的一个症状,在这种情况下可能正如Brian Roach已经建议的那样,正确地划分代码。
答案 1 :(得分:0)
AntContrib VerifyDesign正是我所寻找的。谢谢我!