0

我正在尝试以模块化方式(使用 Guice 进行模块和 DI)构建我的应用程序(使用 Gradle 构建并在 IntelliJ 中开发,这在这里似乎非常重要)。问题是我希望模块只能通过接口进行通信,所以理想情况下我想实现这种结构:

+-- project
   +-- module1
      +-- src
         +-- iface
         +-- impl
         +-- test
      +-- build.gradle
   ..
   +-- moduleX
      +-- src
         +-- iface
         +-- impl
         +-- test
      +-- build.gradle

build.gradle想只包括project('moduleX', configuration : 'iface')或类似的东西。

在 Gradle 中,我可以使用 sourceSets 等来完成,这很酷!但问题是 IntelliJ 无法识别它,因为我是在 gradle 脚本中进行的!对于 IntelliJ,它仍然只是一个模块。

这很奇怪,因为甚至 maven 也支持类似的项目结构(如果我没记错的话)。这是否意味着还有其他方法可以实现我想要的?并且 IntelliJ 希望我使用这种方法,或者它只是希望我将 iface 和其余部分作为单独的模块分开(这是我想避免的事情,我不希望我的项目中有太多模块,因为它会减慢开发环境)?

4

1 回答 1

1

您通常不使用源集,而是将其构建为多项目构建,该构建将映射到 IntelliJ 中的多模块项目,以及 Eclipse 中具有多个项目的工作区。要了解有关多项目构建的更多信息,请查看Gradle 用户指南中的相应章节。

于 2013-11-14T02:21:10.173 回答