我正在将Java项目从Ant迁移到Gradle.我认为最好的解决方案是使用Gradle的多项目支持,但我找不到摆脱循环依赖的方法.

原始项目设置为具有以下布局:

- project/

- common/

- product-a/

- product-b/

common,product-a和product-b之间的关系很棘手.常见的取决于产品-a或产品-b,具体取决于配置文件.同样,无论配置属性如何,product-a和product-b都依赖于common. product-a和product-b永远不会同时构建.

我认为一个快速的解决方案是在project / build.gradle中使用这样的东西:

project(':product-a') {

dependencies {

compile project(':common')

}

}

project(':product-b') {

dependencies {

compile project(':common')

}

}

接下来,我想到了一种方法,让它更接近于只为产品而工作.这导致我这样:

project(':common') {

dependencies {

compile project(':product-a')

}

}

这将引发具有循环依赖性的异常.

我已经考虑通过设置common和product-a / product-b所期望的类的接口或者使用多态来重构product-a和product-b,但在我推进其中任何一个之前,是否有更好的方法用Gradle完成这个任务?我还没准备好摆脱这种技术债务.

java 循环依赖_java – 如何在Gradle中解决循环依赖相关推荐

  1. java for 下标_Java如何在 Word 中设置上、下标

    上标是指比同一行中其他文字稍高的文字,而下标是指比同一行中其他文字稍低的文字.在生活中,我们常见的平方米.立方米等符号以及化学中的各种元素符号,都是利用上.下标来表示的.本文将介绍通过Free Spi ...

  2. 如何用java创建超链接_Java如何在PPT中的幻灯片上创建超链接?

    在Java编程中,如何在PPT中的幻灯片上创建超链接? 注意:需要访问网址:http://poi.apache.org/download.html , 下载一个Apache POI软件包.这里下载最新 ...

  3. 如何更改java源码_java – 如何在Android中更改ImageView源码

    这是我的xml,它位于我活动中出现的片段上. android:id="@+id/frame1" android:layout_width="wrap_content&qu ...

  4. java spring 过滤器_java – 如何在spring-security中的另一个过滤器之前添加过滤器?...

    我的应用程序有两种不同的安全配置.一个OAuth2SecurityConfiguration,另一个是LdapSecurityConfiguration.在OAuth2SecurityConfigur ...

  5. java jcombobox设置_Java如何在JComboBox中设置并获取所选项目?

    下面的代码演示了如何设置的选定项目,JComboBox然后如何获得选定项目的值.在此示例中,我们设置了JComboBox组件,以便用户可以输入自己的值.package org.nhooo.exampl ...

  6. java espresso 自行车_java – 如何在Espresso中重新运行失败的测试? – 头脑风暴

    我想弄清楚,如何使用Espresso重新运行失败的测试.我认为从常见的JUnit测试案例来看,这有点复杂,因为您需要在测试开始之前恢复应用中的状态. 我的方法是创建自己的ActivityTestRul ...

  7. java初始化数据报_java – 如何在Docker中初始化数据库后启动flyway

    我有以下docker compose文件(docker-compose-dev.yml): version: '3' services: my_sql_db: image: percona:lates ...

  8. gradle mysql依赖关系,如何在gradle中找到\删除未使用的依赖关系

    I wanted to find unused dependencies in my project. Is there any feature for this in gradle like in ...

  9. gradle排除依赖_如何从Gradle中的所有依赖项中排除库

    gradle排除依赖 我正在使用Spring Boot. 默认情况下,Spring Boot带有Logback. 我想使用log4j(出于任何原因..) 为了做到这一点,我不得不排除logback并添 ...

最新文章

  1. 《Redis设计与实现》之第四章:字典
  2. ajax传向前台的html代码里又有事件的时候,绑定事件失败解决方法
  3. Hibernate——Query查询
  4. [云炬python3玩转机器学习笔记] 3-3Numpy数据基础
  5. 项目中提示找不到sun.misc.BASE64Encoder
  6. YbtOJ-交换游戏【树链剖分,线段树合并】
  7. mysql insert 字符集_有关 MySQL 字符集的注意事项-爱可生
  8. Active Directory PowerShell模块收集AD信息
  9. python之模块的导入和用户的交互格式化输出
  10. Go语言学习笔记(四)结构体struct 接口Interface 反射reflect
  11. manjaro Linux下使用腾讯会议
  12. v-if和v-show的使用和特点
  13. 云栖大会“云计算加速开源创新论坛” 揭晓 2022 年度开源人物
  14. 【日常】纪录一个愚蠢的问题
  15. dram sram drom srom ddram详细解释
  16. python生成指定长度的列表_python怎样创建具有一定长度和初始值的列表
  17. 逆置线性表(线性表)
  18. johnson_trotter(生成排列算法)
  19. 计算机课说话检查200字,上课说话200字检讨书
  20. 前端设计 响应式设计_响应设计简介

热门文章

  1. Linux 安装完毕要做的事
  2. 几种优化方法的Matlab实现
  3. 思考--为何早晨型人更容易成功
  4. Matlab语音信号频谱分析代码实现
  5. Boost.Asio使用实例
  6. linux命令之创建符号连接-ln
  7. Android:图片加载库Glide VS Picasso
  8. eclipse+cdt+MinGW
  9. 离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute
  10. Python之lambda表达式和内置函数