我有一个复杂的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
类的依赖,反之亦然。我称这个概念为"吊桥",因为你在客户端和服务器代码之间架起了一座吊桥。如果发现违反依赖项,Ant任务将导致构建失败。
缺乏现有的开源解决方案,我的下一个猜测是循环遍历所有客户端类并检查它们的导入服务器类;然而,根据这个SO问题,Java编译器会在编译时丢弃import引用。
所以,我在这里不知所措。什么好主意吗?提前感谢!
由于Java字节码通过完全限定名引用类,使用BCEL或ASM之类的库应该是非常可行的(但并不容易)。
然而,我认为这个问题有一个非常独特的X-Y环,这意味着你试图解决的问题实际上是你应该解决的根本原因的症状,在这种情况下,可能通过正确划分你的代码,就像Brian Roach已经建议的那样。
AntContrib VerifyDesign正是我所寻找的。谢谢我!