我应该在多模块Maven项目中将共享测试实用程序放在何处?

时间:2009-10-12 15:21:30

标签: java maven-2 osgi packages

我可能不会过分关注这一点,但我的项目有一个非常结构化的布局,我已经非常喜欢。实际上已经证明这么多的结构是有用的,所以这次我真的不希望它再次变得混乱。

首先,每个模块由几个Java包组成:

com.mycompany.mysoftware.modulename
com.mycompany.mysoftware.modulename.impl
com.mycompany.mysoftware.modulename.osgi
com.mycompany.mysoftware.modulename.test

主要代码位于.impl。其他模块使用的接口,一些枚举和一些数据容器类位于包中,没有后缀。 BundleActivator包中的OSGi特定代码(.osgi等)和.test包中的单元测试。

现在我有一些类假冒一个模块用于测试其他模块。我想知道是否应该将它们放在已经包含主代码共享库的.test模块的common包中,或者我是否应该有一个新模块test可以在Maven中设置不同的依赖范围。

ETA :我遇到的一个问题是我得到了循环依赖:如果我有两个模块并且每个模块中的单元测试需要另一个模块,那么包含假的模块有一个依赖于包含接口的模块,该模块与包含单元测试的模块相同。因此,假的应该与测试一起,但这会导致大量的代码重复。或者,对于每个模块,我制作了一个假模块,但这让我觉得它已经失控......

1 个答案:

答案 0 :(得分:2)

您不希望将测试代码打包在主代码使用的通用模块中,是吗?

所以答案对我来说显而易见:创建一个测试模块并将其用作测试范围的依赖项。

编辑:我正在回答下面问题更新中提到的问题)

关于循环依赖关系,将接口放在一个单独的模块中呢?