Class maven模块jar上的实体增强。找不到实体类

Class maven模块jar上的实体增强。找不到实体类,class,maven,module,entity,ebean,Class,Maven,Module,Entity,Ebean,我有一个Maven项目a,执行Maven模块ProjectB的操作,其中定义了我的实体类 当我单独构建ProjectB并运行它们都通过的自己的单元测试时,增强效果很好 当我编译ProjectA时,其中的测试操作与ProjectB中的测试操作完全相同,即使ProjectB.jar搜索了实体类,也找不到实体类 但是,如果我将项目B设置为Maven项目而不是Maven模块。一切进展顺利,ProjectB.jar中有实体类,测试通过 谁能告诉我发生了什么事吗 编辑请找到我的项目布局随附的图表 我必须有至

我有一个Maven项目a,执行Maven模块ProjectB的操作,其中定义了我的实体类

当我单独构建ProjectB并运行它们都通过的自己的单元测试时,增强效果很好

当我编译ProjectA时,其中的测试操作与ProjectB中的测试操作完全相同,即使ProjectB.jar搜索了实体类,也找不到实体类

但是,如果我将项目B设置为Maven项目而不是Maven模块。一切进展顺利,ProjectB.jar中有实体类,测试通过

谁能告诉我发生了什么事吗

编辑请找到我的项目布局随附的图表


我必须有至少10个代表点,才能将一张图片直接放入帖子中。抱歉

首先,我认为您不需要在项目级别复制单元测试,因为它们已经是模块的一部分。如果您在modlue级别或th eproject级别运行mvn install,测试类将被执行

因此,基本上模块和项目是一样的,但是当您定义了一个模块时,它需要一个父项目,并且您对父项目所做的任何操作都会应用于作为父项目一部分的所有模块


希望有帮助

谢谢你的回复。复制的测试用例只是为了简化问题描述。将ProjectB视为域层,将ProjectA视为服务层,因此目的是将测试放在ProjectA中使用ProjectB的域方法的高抽象层中。我知道从父级到其模块的依赖项继承和操作传播。不知何故,如果我将ProjectB设置为Maven项目而不是Maven模块,它就会工作,测试也会通过。我遗漏了什么?父项目通常被用作聚合器,打包类型将是pom。因此,带有源代码的服务层项目不应该是pom类型的项目。因此,在您的案例中,我建议稍微更改项目结构,这样,您就有了一个pom->添加两个模块->项目a和项目B类型的父项目。现在在项目a的pom中为项目B添加一个依赖项。并将您的测试用例添加到项目A下。我非常确定,通过这种设置,您可以在项目A服务层下拥有测试用例,而项目B仍然可以是一个模块。又来了。我添加了对描述项目布局的图像的引用。它和你描述的一模一样。父级的包装类型为pom,PA和PB模块类型为jar。除了那些重复的测试。我在PB上的测试是不相关的,因为它们在PA中再次运行。这只是为了告诉你这有多奇怪,如果在包中执行,它们工作得很好,当它们使用PB的jar时会爆炸。我不明白为什么会投反对票。虽然文件夹布局可能会有所帮助,但它清楚地显示了一些努力。但这并不意味着投票会被否决,一个简单的评论就可以了。