0

我有一个复杂的 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 question Java 编译器在编译时丢弃了导入引用。

所以,我在这里不知所措。有任何想法吗?提前致谢!

4

2 回答 2

0

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

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

于 2013-06-19T17:06:54.903 回答
0

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

于 2013-06-20T16:43:42.873 回答