从4.6年级开始:
添加了新配置: api (仅在 java-library 插件) implementation (由两者定义)。
api
java-library
implementation
在多模块项目中,我有几个“核心”模块充当内部库,有时需要通过 应用程序编程接口 配置。
应用程序编程接口
以前我们申请过 java 递归插件:
java
subprojects { apply plugin: 'java' }
我们可以申请成为纯粹主义者 爪哇图书馆 “库”模块插件和 爪哇 “最终应用”模块的插件。
爪哇图书馆
爪哇
如果我们只是说:
subprojects { apply plugin: 'java' apply plugin: 'java-library' }
注释 有了适当的命名模式(我们没有),就可以有选择地执行以下操作:
subprojects { if (project.name.startsWith('lib-')) { apply plugin: 'java-library' } else { apply plugin: 'java' } }
这个 java-library 插件“扩展”基础 java 插件,因此您可以简单地应用 爪哇图书馆 插件到所有子项目,这将自动应用 爪哇 插件。
正如你提到的,理想的/纯粹的方法是 爪哇图书馆 插件仅在“库”项目上,但您仍然可以将此插件应用于“最终应用程序”模块,这将起作用(当然,在您将使用的此类模块中) implementation 配置与否 api 因为这不合理)。
另一种方法是直接在子项目构建脚本中应用所需的插件,而不是从根项目构建全局应用;在这种情况下,您不需要定义“命名模式”。