代码之家  ›  专栏  ›  技术社区  ›  gavenkoa

GooLe>=4.6:在多模块构建中同时使用Java库和Java插件

  •  0
  • gavenkoa  · 技术社区  · 6 年前

    从4.6年级开始:

    添加了新配置: api (仅在 java-library 插件) implementation (由两者定义)。

    在多模块项目中,我有几个“核心”模块充当内部库,有时需要通过 应用程序编程接口 配置。

    以前我们申请过 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'
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   M.Ricciuti    6 年前

    这个 java-library 插件“扩展”基础 java 插件,因此您可以简单地应用 爪哇图书馆 插件到所有子项目,这将自动应用 爪哇 插件。

    正如你提到的,理想的/纯粹的方法是 爪哇图书馆 插件仅在“库”项目上,但您仍然可以将此插件应用于“最终应用程序”模块,这将起作用(当然,在您将使用的此类模块中) implementation 配置与否 api 因为这不合理)。

    另一种方法是直接在子项目构建脚本中应用所需的插件,而不是从根项目构建全局应用;在这种情况下,您不需要定义“命名模式”。