本文主要向大家介绍了JAVA语言之借助Gradle Plugin解决模块化开发中模块如何对外暴露接口,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
直奔主题,在模块化开发中,模块间的数据交流大多数同学会采用以接口作为通信协议的方式。需要面对的问题有以下几点:
接口由谁来维护?这个问题简单,由提供服务的模块来维护。接口怎么暴露?打成jar包,发布到maven。接口在哪里维护?现在可以参考的方案有三种:一. 所有相关模块的接口统一在一个模块中维护;二. 各个模块的接口分别在自建一个新的模块中维护,通过命名规则一一对应;三. 像微信的.api方案,使用特殊的规则混杂在各自的模块中。
如果接着第一个问题,方案一好像就有点难确定接口对应的来源模块。方案二会出现接口模块成倍增加,极易出现一个模块只含一个接口类的现象。方案三需要自定义相关插件,在创建接口时会有点不便,不够灵活。
MIS登场!!!接下来先介绍mis的简单使用以及背后的原理。MIS模块接口服务(Module Interface Service)MIS是从微信的.api方案演变而来,主要解决的问题是如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块。
Usage引用 mis 插件在根项目的build.gradle中添加mis插件的classpath: