我可以配置gradle禁止一组特定的依赖项吗?

时间:2018-07-04 07:05:36

标签: java gradle dependencies

我遇到的情况是在我的项目中我有3种类型的模块 '

  1. 应用程序模块
  2. 服务模块
  3. 基础设施模块

允许的依赖关系将是

  1. 应用程序模块可以取决于服务模块和/或基础结构模块
  2. 服务模块可以取决于基础结构模块

例如,这意味着不允许基础结构模块依赖服务模块。

当然,可以简单地通过不在gradle中添加这些依赖项来轻松地控制它,但是我想知道是否有一种方法可以明确禁止这种事情(当然,我可以在gradle中简单地添加评论),我没有只会在存在这种依赖关系的情况下使构建失败,而且还会提供一条解释原因的消息。

问题是

  1. 这有意义吗?
  2. 这可以通过gradle插件实现吗?

仅作记录,我已经进行了搜索,到目前为止,我发现的内容与传递依赖项管理有关。

1 个答案:

答案 0 :(得分:0)

您可以执行类似在Spring Boot中将雄猫启动器列入黑名单的操作。这是本地完成的,因此不需要额外的插件。

dependencies {
    configurations.all {
        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
          if (details.requested.group == 'org.springframework.boot' && details.requested.name == 'spring-boot-starter-tomcat') {
            logger.error "tomcat found"
            throw new IllegalArgumentException("can't use tomcat here!")
          }
        }
    }
}