构建项目时如何动态指定多模块gradle项目中的哪个模块?

时间:2020-05-30 17:29:34

标签: java gradle build.gradle

我想设置gradle多模块项目构建配置,以便在构建最终jar时可以动态决定要使用哪些模块。

项目很大,由更多模块组成,因此我将使用简单的示例来说明我的问题。

假设我们有4个模块,模块A,B,C和D:
-模块A用于配置并将所有内容粘合在一起。
-模块B包含域逻辑并具有一些接口。
-模块C和D提供模块中声明的接口的不同实现 B。

因此,在其他构建jar文件中,我们必须在build.gradle中为模块A指定依赖项,因为我们有2种实现,并且我们只希望在构建中存在1种实现,所以我们必须注释模块C或D依赖项,并且最终看起来像这样:

...

implementation project(':B')
implementation project(':C')
// implementation project(':D') - commented out, in other to use module C

...

这有效,在这个简单的示例中,它工作不多,但是在实际项目中,我们有多个模块声明接口(如A)和实现这些接口的多个模块,并且可以根据具体的环境将它们全部混合在一起构建应该运行,所以我觉得这个解决方案不够好。

最后我的问题:

是否可以通过以下方式设置我的gradle项目,以便在调用gradle build时提供我想用作参数的模块,或者是否有其他解决方案可以使它更具动态性?< / strong>

我已经读过gradle multi-module documentation,但在该主题上一无所获,我也搜索了类似的问题,只找到了这个Controlling gradle runtime dependencies with build parameter,但是那里的解决方案无法解决我的问题。

0 个答案:

没有答案