解决maven循环依赖

问题:

  • maven打包的时候提示
[ERROR] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='com.kangqiao:provider-sso-java:1.0-SNAPSHOT'}' and 'Vertex{label='com.kangqiao:provider-master-data-java:1.0-SNAPSHOT'}

分析原因:

  • 是由于sso工程依赖master-data工程
  • master-data工程同时有sso工程依赖
  • 产生了循环依赖
  • 产生循环依赖之后maven不知道先构建哪个工程就会报错

解决方案:

方案一、单依赖
  • 删除sso中对master的依赖,采用单项依赖
  • 把sso对master依赖的业务迁移到sso工程中
  • 或者删除master中sso的依赖,把master对sso的依赖部分迁移到master中
方案二、使用插件build-helper-maven-plugin
  • 添加一个中间模块,让master-data和sso都去依赖中间模块, 而不相互依赖
  • build-helper-maven-plugin只是提供了一共规避方案,依赖本质还是存在循环依赖

你可能感兴趣的:(maven,java,java)