Drawbridging客户端,在Java中共享一个服务器包



我有一个复杂的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任务将导致构建失败。

我怎么也想不出该怎么做这件事。最好是已经存在的东西,但是Google没有拒绝任何东西。

缺乏现有的开源解决方案,我的下一个猜测是循环遍历所有客户端类并检查它们的导入服务器类;然而,根据这个SO问题,Java编译器会在编译时丢弃import引用。

所以,我在这里不知所措。什么好主意吗?提前感谢!

由于Java字节码通过完全限定名引用类,使用BCEL或ASM之类的库应该是非常可行的(但并不容易)。

然而,我认为这个问题有一个非常独特的X-Y环,这意味着你试图解决的问题实际上是你应该解决的根本原因的症状,在这种情况下,可能通过正确划分你的代码,就像Brian Roach已经建议的那样。

AntContrib VerifyDesign正是我所寻找的。谢谢我!

相关内容

  • 没有找到相关文章

最新更新