Maven多模块如何使用同一个公用模块作为orm的PO来使用?

目前的项目结构是

-project
  ├module A 微服务
  ├module B 微服务
  └module C PO等公用模块

目前AB在设想上都是可以独立运行的程序,但是两个模块中有部分entity( Jpa的orm对象 )是一模一样的(因为操作了相同的数据库表)
所以想用C模块来封装这些相同部分为公用模块

请问具体要怎么配置pom文件?

创建新的maven工程,添加需要的依赖。让AB 都 依赖它。在这个工程里面定义好entityrepository 等等。

AB 工程中的JPA配置其实没啥变化,只是修改Repositoryentity包的路径就行。

@EnableJpaRepositories(basePackages = {"xxxx"}) 
@EntityScan(basePackages = {"xx"})
1 Like

那模块C的dependencies呢?因为Jpa,validation等都是需要依赖的,请问是根据需要正常加吗?

嗯,是的。正常添加 ,需要啥就添加啥。你可能是担心一个问题。C 模块依赖了 E这个库,但是B模块不依赖EB 导入了 C 后传递依赖了 E。你可以在C模块中 ,把依赖的scope设置成 provided

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-validation</artifactId>
	<scope>provided</scope>
</dependency>

明白