首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何自动确定依赖项应该是api还是实现级配置?

如何自动确定依赖项应该是api还是实现级配置?
EN

Stack Overflow用户
提问于 2022-03-14 18:23:28
回答 1查看 78关注 0票数 1

在迁移到第7级时,我们必须将compile配置替换为implementationapi配置。

根据分级文件

API依赖项是指至少包含一种在库二进制接口中公开的类型,通常称为它的ABI (应用程序二进制接口)。这包括但不限于:

  • 超类或接口中使用的类型
  • 在公共方法参数中使用的类型,包括泛型参数类型(其中public是编译器可以看到的东西。即Java世界中的公共成员、受保护成员和私有成员包)
  • 公共字段中使用的类型
  • 公共注释类型

当迁移具有大量依赖项的大型代码库时,确定每个依赖项是implementation还是api依赖是一项繁琐的任务。

我的问题是:如何自动确定依赖项应该是api还是实现配置?

EN

回答 1

Stack Overflow用户

发布于 2022-03-14 19:41:26

要实现自动化,您需要有效地将来自使用者的测试(假设有测试)合并到项目的测试中。换句话说,在本地发布模块,修改消费项目以使用更新的依赖项,并运行它们的测试。或者在项目中编写使用使用者代码的测试是另一种方法。

例如,Gradle针对选定的社区插件测试Gradle,以确保它们不会破坏任何东西:https://github.com/gradle/gradle/tree/master/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests

然而,问题就变成了:谁在使用我的项目?这本身可能是一项乏味的任务。

如果您不确定或不想花时间确定apiimplementation,那么使用api,因为它与compile或多或少是“相同的”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71472509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档