我正在处理一个复杂的项目,我决定把它分成几个小项目。
所有项目都在使用两个小项目:
- Utils:一个具有公共函数和HTTP调用的项目
- 模型:一个包含我所有实体对象的项目
因此,utils项目由@Service组成,模型工程由@Entity组成,只是为了快速解释。
当我下载了所有项目并在本地计算机上工作时,当我启动一个使用模型和utils项目的应用程序时,它运行得非常好。当我从本地计算机中删除模型和utils并从maven存储库中开始使用它时,会发生"非托管类型"错误,我无法启动应用程序。同样的情况也发生在服务器上。
在我的spring-boot项目主类中,我尝试了几种方法,比如:
- @EntityScan(basePackages-…指定了所有包
- @ComponentScan(basePackages=…指定了所有程序包
但似乎什么都不起作用。我没有选择了,我想知道我的项目是否从根本上错了,我应该把我的项目结构重建成不同的东西。
基本上:
- 我有三个项目,A、B和C
- C项目依赖于项目a和B。B项目依赖于a
- 当我启动项目C时,它不会将项目A和B加载到上下文中,也无法启动应用程序,从而消除了"非托管类型:com.company.project-B.Class"错误
你能帮我吗?
我花了很多时间试图发现真正的问题,它非常简单。我只导入了编译实体项目所必需的libs,但我还需要导入一些spring-boot依赖项才能使其工作。
基本上,我只是将pom.xml从我的应用程序项目复制到实体项目中,它就工作了。