DrawBridgeing客户端,共享Java中的服务器包

DrawBridgeing客户端,共享Java中的服务器包,java,ant,client-server,classpath,Java,Ant,Client Server,Classpath,我有一个复杂的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类的依赖项,反之亦然。我将这个概念称为

我有一个复杂的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
类的依赖项,反之亦然。我将这个概念称为“drawbridge”,因为您正在客户机和服务器代码之间搭建一座drawbridge。如果发现这种违反依赖关系,Ant任务将使构建失败

我的一生都不知道该怎么做。更好的是,有些东西已经存在了,但是谷歌没有回击任何东西

如果没有现有的开源解决方案,我的下一个猜测是遍历所有客户机类并检查它们的服务器类导入;然而,根据Java编译器在编译时丢弃导入引用


所以,我在这里不知所措。有什么想法吗?提前谢谢

由于Java字节码通过类的完全限定名引用类,所以使用类似or的库应该是非常可行的(但并不容易)


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

AntContrib正是我想要的。谢谢我

为什么不简单地将它们分成三个项目,共享的一个项目是两者的依赖项?谢谢@BrianRoach,我应该在我的原始帖子中提到这一点-这不是一个选项,原因超出了这个问题的范围。。。